Windows Batch Scripting: Neueste Datei, die einem Muster entspricht

7724
Eddie Parker

Dies wäre unter Linux blitzschnell, aber ich bin nicht mit der Windows-Variante von Batch-Scripting vertraut.

Grundsätzlich möchte ich nach einer Reihe von Dateien suchen, die mit einem bestimmten Platzhalter übereinstimmen, und die mit dem letzten Änderungsdatum abrufen.

Ich bin soweit gekommen:

for %%X in (*.exe) do ( REM Do stuff.... ) 

Ich bin mir jedoch nicht sicher, welche Vergleichsoperatoren es gibt oder ob es einen besseren Weg gibt, dies zu tun.

Hat jemand gute Lösungen? Im Idealfall wäre eine Vanilla-Installation von Vista erforderlich. also kein spezieller Trick wie cygwin / etc.

5

2 Antworten auf die Frage

3
Eddie Parker

Ah, habe es gefunden:

for /f %%x in ('dir *.exe /B /O:-D') do set NEWEST_EXE & goto DONE  :DONE 
1
njd

In PowerShell gibt es mit Sicherheit einen vernünftigeren Weg.
Aber wenn es cmd.exe sein muss:

FOR /f %f IN ('DIR /b /od *.exe') DO @SET last=%f  ECHO %last% 

DIR /blistet nur den Dateinamen ls -1auf; das /odist natürlich datumsordnung.
Bei der letzten Iteration wird also der Name der letzten Datei in der Liste festgelegt.