6

Это будет молниеносно в Linux, но я недостаточно знаком с Windows-интерфейсом пакетного скриптинга.

По сути, я хочу найти серию файлов, соответствующих определенному шаблону, и получить файл с самой последней измененной датой.

Я получил, насколько:

for %%X in (*.exe) do (
REM Do stuff....
)

Но я не уверен, какие существуют операторы сравнения или есть ли лучший способ сделать это.

Кто-нибудь предлагает какие-либо хорошие решения? В идеале это будет включать ванильную установку Vista; так что никакой особой хитрости, такой как cygwin/etc.

2 ответа2

4

Ах, нашел это:

for /f %%x in ('dir *.exe /B /O:-D') do set NEWEST_EXE & goto DONE

:DONE
2

Почти наверняка есть более разумный способ сделать это в PowerShell.
Но если это должен быть cmd.exe:

FOR /f %f IN ('DIR /b /od *.exe') DO @SET last=%f

ECHO %last%

DIR /b перечисляет только имя файла, как сделал бы ls -1 ; /od - это, конечно, порядок дат.
Таким образом, последняя итерация устанавливает имя последнего файла в списке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .