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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 274937
Url: https://administrator.de/contentid/274937
Printed on: April 25, 2024 at 07:04 o'clock
3 Comments
Latest comment
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