2016-09-13 2 views
0

Ich habe eine Datei von CSV-Dateien, die einen Datumsstempel in ihrem Dateinamen haben. Ich muss die Datei mit dem letzten Datum im Namen kopieren.So erstellen Sie eine Batch-Datei zum Kopieren der neuesten Datei auf der Grundlage von Zeitstempel Dateinamen

Ich bin ein Neuling, wenn es um Batch Scripting geht das ist, was ich bisher habe, wie Sie sehen, es kopiert eine einzelne Datei, aber nicht alle Dateinamen durchlaufen und nur die neuesten datierten kopieren. Danke für die Hilfe.

SET sourceDir=\\source\path 
SET targetDir=\\target\path 

copy "%sourceDir%\examplefile_20160111_010003.csv" "%targetDir%\newname.csv" 

Antwort

1

Es gibt keinen Befehl, der dazu in der Lage ist. Sie müssen einen kleinen Trick verwenden:

dir kann alphabetisch sortieren (das ist genau, was Sie hier wollen) mit /on Parameter. /b gibt Ihnen die Dateinamen nur,/a-d schließt Ordner:

dir /a-d /on /b 

Sie möchten die letzte. Holen Sie es mit einem for Schleife:

for /f "delims=" %%a in ('dir /a-d /on /b "%sourceDir%\examplefile_*.csv"') do set latest=%%a 

Dann können Sie copy "%sourceDir%\%latest%" "%targetDir%\newname.csv"

+0

Dank Stephan, die eine Behandlung gearbeitet hat –

Verwandte Themen