вы можете передать DIR /B /S /OD "tracker.txt"
команда приводит к файлу временного журнала, но использовать FOR
замены цикла, чтобы поместить штамп даты и времени каждого файла, который соответствует имени, за которым следует запятая, а затем полный явный путь и имя файла (т. е. YYYY-MM-DD hh:mm [AM/PM]
).
затем используйте SORT
команда против этого файла, чтобы отсортировать все строки в этом файле в новый отсортированный файл, но с новейшим штамп времени файла в нижней части списка.
наконец, вы запустите финал FOR
цикл через окончательный список файлов, используя запятую в качестве разделителя, а затем только установив переменную итератора в этом цикле для каждого полного явного пути, и когда он доберется до нижней части этого списка, это самый новый файл, который SET
last, а затем вы можете сделать что-то с этой последней переменной set, которая является новейшей меткой даты файла из всех каталогов, которые вы задаете рекурсивно.
Пакетный Скрипт Пример
обязательно установите значение SET StartDir=
переменная-корневая папка, в которой запускается команда DIR для рекурсивного поиска файлов.
@ECHO ON
SET StartDir=C:\Users\User\Desktop\Test
IF EXIST "%temp%\~dir1temp.dat" DEL /Q /F "%temp%\~dir1temp.dat"
FOR /F "TOKENS=*" %%A IN ('Dir /B /S /OD "%StartDir%\tracker.txt"') DO ECHO %%~TA, %%~FPNXA>>"%temp%\~dir1temp.dat"
IF EXIST "%temp%\~dirsorttemp.dat" DEL /Q /F "%temp%\~dirsorttemp.dat"
SORT "%temp%\~dir1temp.dat">>"%temp%\~dirsorttemp.dat"
FOR /F "TOKENS=2 DELIMS=," %%A IN (%temp%\~dirsorttemp.dat) DO (SET File=%%~A)
ECHO %File%
:::<command to do something with %file%>
PAUSE
Дополнительные Ресурсы