sascha224
Goto Top

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?

Content-ID: 274937

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

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

eisbein
eisbein 18.06.2015 um 17:29:08 Uhr
Goto Top
Hallo!


Hat dazu jemand eine Idee?

Stichwort: robocopy

und dann gibt es ja auch noch die Forum-Suchfunktion face-wink

Gruß
Eisbein
114757
Lösung 114757 18.06.2015, aktualisiert am 19.06.2015 um 08:33:57 Uhr
Goto Top
Yip, Powershell my friend, ohne Variablen wär's ein Einzeiler face-wink
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}}  
Erfolgreich getestet.

Gruß jodel32
sascha224
sascha224 19.06.2015 aktualisiert um 08:38:09 Uhr
Goto Top
@eisbein: Ja danke, an Robocopy hatte ich auch schon gedacht. Mir fehlen nur vernünftige Kenntnisse für eine passende Schleife, die das Dateimuster matcht - das mit den Variablen hab ich beim Batch-Skripting nie wirklich geblickt...

@114757: Funktioniert super, vielen Dank!!!