No meu disco rígido, tenho centenas de subpastas criadas diariamente que podem conter um arquivo de texto específico (Tracker.txt).
Gostaria de criar um arquivo cmdline ou BAT para obter apenas um resultado, o arquivo tracker.txt mais recente, com seu caminho completo!
Eu tentei, dir /s tracker.txt /OD
mas o resultado não é filtrado por data.
Obrigado!
Respostas:
Você pode canalizar os
DIR /B /S /OD "tracker.txt"
resultados do comando para um arquivo de log temporário, mas usar asFOR
substituições de loop para colocar o registro de data e hora de cada arquivo que corresponda ao nome seguido por uma vírgula e, em seguida, o caminho explícito completo e o nome do arquivo (ou sejaYYYY-MM-DD hh:mm [AM/PM]
).Em seguida, você usa o
SORT
comando nesse arquivo para classificar todas as linhas desse arquivo em um novo arquivo classificado, mas com o arquivo de carimbo de data / hora mais recente na parte inferior da lista.Por fim, você executaria um
FOR
loop final na lista de arquivos final usando a vírgula como delimitador e, em seguida, apenas configurando a variável iteradora nesse loop para cada caminho explícito completo e, quando chegar ao final da lista, esse é o mais novo arquivo que é oSET
último e, em seguida, você pode fazer algo com essa última variável definida, que é o mais recente carimbo de data do arquivo em todos os diretórios especificados recursivamente.Exemplo de script em lote
Certifique-se de definir o valor da
SET StartDir=
variável como a pasta raiz onde o comando DIR é iniciado para localizar os arquivos recursivamente.Recursos adicionais
FOR /?
(substituições de lote)fonte