Bei Dateien mit gleichem Namenspräfix die ältesten Dateien wegkopieren
Hallo zusammen,
da meine cmd- und Batch-Kenntnisse eher rudimentär vorhanden sind, stehe ich mit der folgenden Aufgabe vor einer echten Herausforderung:
In einem Verzeichnis liegen viele gleichartige PDF-Dateien. Alle Dateien beginnen mit einer Artikel-Nr., gefolgt von einem Underscore (_) und danach einem willkürlichen String. Von einer Artikel-Nr. kann es mehrere PDF-Dateien geben, aber nun soll ein regelmässig auszuführender Job dafür sorgen, dass jeweils nur die neueste Datei einer Art.-Nr. in diesem Verzeichnis verbleibt und alle älteren Dateien der selben Art.-Nr. in ein anderes Verzeichnis umkopiert werden.
Beispiel:
Vorhanden:
1000-1_Datei1.pdf
1000-1_Datei2.pdf
1005_Datei678.pdf
1005_nocheineweiteredatei.pdf
4711-1_undnocheinedatei.pdf
4711-1_nochmal.pdf
4711-2_undwiedereine.pdf
Der Job (vorzugsweise per Batch oder auch PowerShell) soll nun dafür sorgen, dass nun bei mehrfach vorkommenden Artikel-Präfixen alle älteren Dateien eines Präfixes in ein anderes Verzeichnis kopiert werden und nur die jeweils neueste (nach Dateidatum) im ursprünglichen Verzeichnis verbleiben:
1000-1_Datei2.pdf
1005_nocheineweiteredatei.pdf
4711-1_undnocheinedatei.pdf
4711-2_undwiedereine.pdf
Für die Unterscheidung nach Artikel-Nr. ist nur der String vor dem ersten Underscore von links ausschlaggebend. Es ist aber möglich, dass in dem String rechts von der Artikel-Nr. weitere Underscores vorkommen, welche aber für die Unterscheidung nicht relevant sind.
Ich vermute mal, dass dies für die cmd- oder PowerShell-Profis unter euch eine kurze Fingerübung darstellt.... Hat jemand einen Vorschlag, wie dies am besten zu lösen wäre?
Wie gesagt, schön wäre ein cmd-Batch oder ein PowerShell-Script, dass ich z. B. stündlich per Task Scheduler laufen lassen könnte.
Besten Dank schon mal im voraus
da meine cmd- und Batch-Kenntnisse eher rudimentär vorhanden sind, stehe ich mit der folgenden Aufgabe vor einer echten Herausforderung:
In einem Verzeichnis liegen viele gleichartige PDF-Dateien. Alle Dateien beginnen mit einer Artikel-Nr., gefolgt von einem Underscore (_) und danach einem willkürlichen String. Von einer Artikel-Nr. kann es mehrere PDF-Dateien geben, aber nun soll ein regelmässig auszuführender Job dafür sorgen, dass jeweils nur die neueste Datei einer Art.-Nr. in diesem Verzeichnis verbleibt und alle älteren Dateien der selben Art.-Nr. in ein anderes Verzeichnis umkopiert werden.
Beispiel:
Vorhanden:
1000-1_Datei1.pdf
1000-1_Datei2.pdf
1005_Datei678.pdf
1005_nocheineweiteredatei.pdf
4711-1_undnocheinedatei.pdf
4711-1_nochmal.pdf
4711-2_undwiedereine.pdf
Der Job (vorzugsweise per Batch oder auch PowerShell) soll nun dafür sorgen, dass nun bei mehrfach vorkommenden Artikel-Präfixen alle älteren Dateien eines Präfixes in ein anderes Verzeichnis kopiert werden und nur die jeweils neueste (nach Dateidatum) im ursprünglichen Verzeichnis verbleiben:
1000-1_Datei2.pdf
1005_nocheineweiteredatei.pdf
4711-1_undnocheinedatei.pdf
4711-2_undwiedereine.pdf
Für die Unterscheidung nach Artikel-Nr. ist nur der String vor dem ersten Underscore von links ausschlaggebend. Es ist aber möglich, dass in dem String rechts von der Artikel-Nr. weitere Underscores vorkommen, welche aber für die Unterscheidung nicht relevant sind.
Ich vermute mal, dass dies für die cmd- oder PowerShell-Profis unter euch eine kurze Fingerübung darstellt.... Hat jemand einen Vorschlag, wie dies am besten zu lösen wäre?
Wie gesagt, schön wäre ein cmd-Batch oder ein PowerShell-Script, dass ich z. B. stündlich per Task Scheduler laufen lassen könnte.
Besten Dank schon mal im voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 356524
Url: https://administrator.de/forum/bei-dateien-mit-gleichem-namenspraefix-die-aeltesten-dateien-wegkopieren-356524.html
Ausgedruckt am: 23.12.2024 um 13:12 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
Kann es sein, dass es bei Dir reicht alle Dateien NICH zu kopieren/verschieben, welche JUENGER sind wie eine bestimmte Zeit?
Oder halt alle Dateien zu kopieren/verschieben die aelter sind wie eine bestimmte Zeit?
Such mal hier bei administrator.de danach. Gibt genuegend Beispiele dafuer.
BFF
Kann es sein, dass es bei Dir reicht alle Dateien NICH zu kopieren/verschieben, welche JUENGER sind wie eine bestimmte Zeit?
Oder halt alle Dateien zu kopieren/verschieben die aelter sind wie eine bestimmte Zeit?
Such mal hier bei administrator.de danach. Gibt genuegend Beispiele dafuer.
BFF
Ich vermute mal, dass dies für die cmd- oder PowerShell-Profis unter euch eine kurze Fingerübung darstellt
So is et, Pippikrams mit Powershellgci 'c:\Folder' -Filter *.pdf | sort LastWriteTime -Desc | Group {$_.Basename.split('_')} | ?{$_.Count -gt 1} | %{$_.Group | Select -skip 1 | Move-Item -Destination 'c:\Archiv' -Force}