Ich schlage vor, die folgenden Zeilen zu verwenden:
FOR /F "delims=" %%I IN ('DIR "C:\Jenkins\Releases\C9metro\*.jpg" /A-D /B /O-D /TW 2^>nul') DO (
SET NewestFile=%%I
GOTO FoundFile
)
ECHO No *.jpg file found!
GOTO :EOF
:FoundFile
ECHO Newest *.jpg file is: %NewestFile%
Der Parameter /A-D
sorgt dafür, dass Unterverzeichnisse ignoriert werden, die durch Zufall zufällig auch mit der Zeichenfolge .jpg
enden.
Der Parameter /B
schaltet das leere Format ein, wobei in diesem Fall nur der Dateiname ohne Pfad durch Befehl DIR zurückgegeben wird.
Der Parameter /O-D
führt dazu, dass die gefundenen Dateien nach DIR nach Datum in umgekehrter Reihenfolge von neu nach alt aufgelistet werden.
Und der Parameter /TW
stellt sicher, dass die letzte Änderungszeit (Schreibzugriff) zum Auflisten der gefundenen JPEG-Dateien in Datumsreihenfolge verwendet wird.
Die Schleife wird bei der ersten gefundenen Datei beendet, die dem Platzhaltermuster *.jpg
entspricht, wodurch diese Methode schneller wird als die Zuweisung aller Dateinamen zur Variablen NewestFile
bis zur letzten gefundenen Datei.
Jetzt markieren Sie es als Antwort. –