peter32
Goto Top

Per Batch nur neueste Datei mit bestimmten Dateianfang kopieren

Hallo,

ich habe schon einiges gegoogled, allerdings habe ich noch keine 100%ige Lösung für mein Problem gefunden.

Ich habe einen Ordner, in dem sind viele Dateien nach dem Schema aufgebaut:

Datei1-abc
Datei1-cde
Datei1-fgh
Datei2-abc
Datei2-cde
Datei2-fgh
Datei2-...
Datei3-abc
Datei3-cde
...

Ich habe schon herausgefunden, wie ich die aktuellste Datei herausfinde:

@echo off &setlocal

pushd "D:\Neuer Ordner" ||goto :eof  
for /f "delims=" %%a in ('dir /a-d /b /od *.*') do set "newestFile=%%a"  
copy "%newestFile%" "D:\NeuerOrdner2\%newestFile%"  
popd

Allerdings möchte ich, dass die aktuellste Datei mit Dateianfang "Datei2" z.B. ausgegeben wird.

Also ich glaube ich muss den code oben nur etwas erweitern, dass eben dieser sich nur auf einen bestimmten Dateinamen-Anfang beziehen soll, hier z.B. "Datei2". Hat jemand eine Idee?

Danke und Gruß
Peter

Content-Key: 313950

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

Printed on: April 27, 2024 at 02:04 o'clock

Member: Kraemer
Kraemer Aug 30, 2016 at 12:34:56 (UTC)
Goto Top
Moin,

du weißt was *.* bedeutet?

Gruß Krämer
Mitglied: 129813
129813 Aug 30, 2016 updated at 12:45:18 (UTC)
Goto Top
@Kraemer : This is the "Google-Generation" , what do you expect from them ... face-wink
ich habe schon einiges gegoogled, allerdings habe ich noch keine 100%ige Lösung für mein Problem gefunden.
nothing but searching, instead of RTFM ...
for /f "delims=" %%a in ('dir /a-d /b /od "Datei2*"') do set "newestFile=%%a" 

Regards
Member: Pjordorf
Pjordorf Aug 30, 2016 at 13:05:56 (UTC)
Goto Top
Hallo,

Zitat von @Peter32:
Ich habe schon herausgefunden, wie ich die aktuellste Datei herausfinde:
Das ist eher Zufall bei dir...

for /f "delims=" %%a in ('dir /a-d /b /od *.*') do set "newestFile=%%a"
Es wird eine Sortierte Liste ausgegeben nach datum absteigebnd Sortiert. Da deine For Schleife immer mit NewestFile=%%a endet wird jedesmal der gefundene Eintrag deiner Dir liste eingetragen. Zufälligerweise (Schalter /od) ist der letzte gefundene Eintrag der neueste....
Wenn du nun andere kriterien benötigst musst du schauen ob du die Liste im Vorfeld schon eingrenzen kannst. Dein *.* ist weder nützlich noch hilfreich noch wird es benöltigt (Ein Dir geht auch ohne *.*). Versuche mal anstelle von *.* ein Datei2*.

Allerdings möchte ich, dass die aktuellste Datei mit Dateianfang "Datei2" z.B. ausgegeben wird.
Dann lass dein Dir doch danach filtern....

Gruß,
Peter