net-explorer
Goto Top

PowerShell 5 Copy-Item gleiche Unterordner in Quell- u. Ziel-Laufwerk

Hallo an alle PowerSheller!

ich habe zwei Laufwerke mit identischer Ordner-/Unterordnerstruktur, und möchte bestimmte Dateien quasi von A:\* nach B:\* kopieren, also immer in die gleichen Unterordner auf dem Ziellaufwerk. Die Dateien liegen dort mit 0 kB bereits vor, auf dem Quell-Laufwerk A: allerdings "mit Substanz", also größer 0kB.

Mit dem Script komme ich so weit, dass die relevanten Dateien (=0kB) auf dem Ziellaufwerk mittels Filter erkannt werden, und ich den Pfad ausgegeben bekomme.
Nun soll das Script eben diese Dateien in den erkannten Pfaden vom Quell-Laufwerk in das Ziel-Laufwerk überschreibenderweise (-Force) kopieren.

Würde mich sehr freuen, wenn dazu jemand eine zündende Idee hätte.
Vielen Dank im Voraus.

Content-ID: 476226

Url: https://administrator.de/contentid/476226

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

140447
Lösung 140447 21.07.2019 aktualisiert um 21:20:38 Uhr
Goto Top
Einfach Quellpfad mit Replace durch Zielpfad ersetzen
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# Quell Ordner
$quelle = 'A:\'  
# Ziel-Ordner
$ziel = 'B:\'  
# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# 
# Quelle rekursiv Dateien druchsuchen
dir $quelle -File -Recurse | %{
    # Zielpfad erstellen
    $targetFilePath = $_.Fullname.Replace($quelle,$ziel)
    # Zielpfad
    $targetPath = Split-Path $targetFilePath -Parent
    # Zielordner erstellen falls noch nicht existiert
    if(!(Test-Path $targetPath)){md $targetPath -Force | out-null}
    # Datei kopieren
    copy-item $_.Fullname $targetFilePath -Force -Verbose
}
Pjordorf
Pjordorf 21.07.2019 um 23:08:35 Uhr
Goto Top
Hallo,

Zitat von @net-explorer:
Mit dem Script
Welches hier keiner kennt (Geheimsache?) entweder das Skript vom Kollegen @140447 oder Robocopy /? nutzen.

Gruß,
Peter
net-explorer
net-explorer 22.07.2019 um 13:04:42 Uhr
Goto Top
Erst mal vielen herzlichen Dank an routerboard, das werde ich durcharbeiten und versuchen.

@Pjordorf
Das Konstrukt ist sicher kein Geheimnis, aber ebenso sicher als Produkt der ersten Schritte mit PowerShell hier keine interessante Innovation.

Get-ChildItem "E:\*.ico" | Where-Object -FilterScript {($_.Length -le 100kb)} | Split-Path -Resolve -NoQualifier | Copy-Item -Destination "K:\" -Force

Ich denke, bezüglich der Aufgabenstellung kann ich damit die Leute nur verwirren. Das ist mein erster Versuch etwas ins Laufen zu bringen.