Dateien in gleiche Ordnerstruktur verschieben mit Powershell
Guten Morgen zusammen !
Ich weiß, dass es schon viele Beiträge zu diesem Thema gibt. Ich würde das nur gerne per Powershell machen, habe aber dazu noch nichts gefunden..
Also:
Ich habe einen Ordner X und einen Unterordner Y in dem Dateien liegen. Jetzt möchte ich, dass diese Dateien in ein Archiv verschoben werden, in dem es genau die gleiche Ordnerstruktur gibt. Habe mir auch schon ein Batch File geschrieben, was diese Struktur (ohne Dateien) kopiert.
Ansonsten ist hier mein Powershell-Befehl, den ich bis jetzt habe:
gci 'D:\Odner\*.*' -Recurse | ?{$_.CreationTime -lt (get-date).AddMonths(-1) -and ?{$_.LastWriteTime -lt (get-date).AddMonths(-1)} | copy-item -destination D:\Archiv
Wenn ich diesen Befehl starte, werden aber alle Dateien "auf einer Ebene" gespeichert. Ich hätte aber gerne, dass z.B Datei A dann auch wieder im Archiv im Unterordner Y liegt.
Danke im Voraus für die Antworten.
Ich weiß, dass es schon viele Beiträge zu diesem Thema gibt. Ich würde das nur gerne per Powershell machen, habe aber dazu noch nichts gefunden..
Also:
Ich habe einen Ordner X und einen Unterordner Y in dem Dateien liegen. Jetzt möchte ich, dass diese Dateien in ein Archiv verschoben werden, in dem es genau die gleiche Ordnerstruktur gibt. Habe mir auch schon ein Batch File geschrieben, was diese Struktur (ohne Dateien) kopiert.
Ansonsten ist hier mein Powershell-Befehl, den ich bis jetzt habe:
gci 'D:\Odner\*.*' -Recurse | ?{$_.CreationTime -lt (get-date).AddMonths(-1) -and ?{$_.LastWriteTime -lt (get-date).AddMonths(-1)} | copy-item -destination D:\Archiv
Wenn ich diesen Befehl starte, werden aber alle Dateien "auf einer Ebene" gespeichert. Ich hätte aber gerne, dass z.B Datei A dann auch wieder im Archiv im Unterordner Y liegt.
Danke im Voraus für die Antworten.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 266517
Url: https://administrator.de/contentid/266517
Ausgedruckt am: 22.11.2024 um 02:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Jack005,
machst du mit Powershell auf diese Art und Weise:
Grüße Uwe
machst du mit Powershell auf diese Art und Weise:
# Quellordner
$sourcePath = "D:\Ordner"
# Zielordner
$targetPath = "D:\Archiv"
# für jedes File das den Kriterien entspricht
gci $sourcePath -Recurse -Filter *.* | ?{$_.CreationTime -lt (get-date).AddMonths(-1) -and $_.LastWriteTime -lt (get-date).AddMonths(-1)} | %{
# erzeuge Ordnerpfad für Ziel indem im Pfad der Datei der Quell-Ordner durch den Zielordner ersetzt wird
$newPath = $_.DirectoryName.Replace($sourcePath,$targetPath)
# wenn Zielordner noch nicht existiert erstelle ihn
if (!(Test-path $newPath)){md $newPath}
# verschiebe Datei in den Zielordner im Archiv
move-item $_.FullName $newPath -Force
}