Dateien mit gleichem Präfix verschieben, neueste belassen
Hallo,
ich habe folgendes Problem:
In einem Verzeichnis befinden sich viele gleichartige Files. Der Dateiname besteht aus einem Präfix, einem Underscore und einem Suffix, sowie Extension (Schema also "Präfix_Suffix.txt"). Nun soll von allen Dateien mit dem selben Präfix alle Dateien bis auf die neueste (nach Änderungsdatum) in ein anderes Verzeichnis verschoben werden, d. h. dass am Ende von jedem Präfix nur noch eine Datei, nämlich die neueste aus der jeweiligen Präfix-Gruppe, im Ursprungsverzeichnis liegen bleibt.
Hat dazu jemand eine Idee?
ich habe folgendes Problem:
In einem Verzeichnis befinden sich viele gleichartige Files. Der Dateiname besteht aus einem Präfix, einem Underscore und einem Suffix, sowie Extension (Schema also "Präfix_Suffix.txt"). Nun soll von allen Dateien mit dem selben Präfix alle Dateien bis auf die neueste (nach Änderungsdatum) in ein anderes Verzeichnis verschoben werden, d. h. dass am Ende von jedem Präfix nur noch eine Datei, nämlich die neueste aus der jeweiligen Präfix-Gruppe, im Ursprungsverzeichnis liegen bleibt.
Hat dazu jemand eine Idee?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 274937
Url: https://administrator.de/contentid/274937
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo!
Stichwort: robocopy
und dann gibt es ja auch noch die Forum-Suchfunktion
Gruß
Eisbein
Hat dazu jemand eine Idee?
Stichwort: robocopy
und dann gibt es ja auch noch die Forum-Suchfunktion
Gruß
Eisbein
Yip, Powershell my friend, ohne Variablen wär's ein Einzeiler
Quell und Zielpfad in Zeile 1 und 2 anpassen, der Rest ist schon an dein Muster angepasst.
Erfolgreich getestet.
Gruß jodel32
Quell und Zielpfad in Zeile 1 und 2 anpassen, der Rest ist schon an dein Muster angepasst.
$source = 'C:\quelle'
$destination = 'D:\ziel'
gci $source -Filter *.txt | ?{!$_.PSIsContainer} | group {[regex]::match($_.Name,'^(.*?)_').Groups[1].Value} | ?{$_.Count -gt 1} | %{$_.Group | sort LastWriteTime -Descending | select -skip 1 | %{ copy-item $_.Fullname -Destination $destination -Force; remove-item $_.Fullname -Force}}
Gruß jodel32