Você pode canalizar os resultados do comando DIR /B /S /OD "tracker.txt"
para um arquivo de log temporário, mas usar as substituições do loop FOR
para colocar o carimbo de data e hora de cada arquivo que corresponda ao nome seguido por uma vírgula e o caminho explícito completo e nome do arquivo (ou seja, YYYY-MM-DD hh:mm [AM/PM]
).
Em seguida, você usa o comando SORT
nesse arquivo para classificar todas as linhas desse arquivo em um novo arquivo classificado, mas com o arquivo de registro de data e hora mais novo na parte inferior da lista.
Por último, você executaria um loop FOR
final na lista de arquivos final usando a vírgula como delimitador e, em seguida, definindo apenas a variável iteradora nesse loop para cada caminho explícito completo e quando chegar ao final dessa list, este é o arquivo mais recente que é SET
last e, em seguida, você pode fazer algo com essa última variável set, que é o selo de data mais recente do arquivo, dentro de todos os diretórios especificados recursivamente.
Exemplo de script em lote
Certifique-se de definir o valor da variável SET StartDir=
para ser a pasta raiz onde o comando DIR inicia para localizar os arquivos recursivamente.
@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
Mais recursos
- Classificar
- Para / F
-
FOR /?
(substituições em lote)In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax: %~fI - expands %I to a fully qualified path name %~tI - expands %I to date/time of file
- Defina