Вы можете передать результаты команды DIR /B /S /OD "tracker.txt"
во временный файл журнала, но использовать ее для замены цикла FOR
чтобы поставить метку даты каждого файла, которая соответствует имени, за которым следует запятая, а затем полный явный путь и имя файла (т.е. YYYY-MM-DD hh:mm [AM/PM]
).
Затем вы используете команду SORT
этого файла, чтобы отсортировать все строки в этом файле в новый отсортированный файл, но с самым новым файлом отметки времени внизу списка.
Наконец, вы должны выполнить последний цикл FOR
через окончательный список файлов, используя запятую в качестве разделителя, а затем установить только переменную итератора в этом цикле для каждого полного явного пути, и когда он дойдет до конца этого списка, это последний файл, который 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
Дополнительные ресурсы