Ах, нашел это:
for /f %%x in ('dir *.exe /B /O:-D') do set NEWEST_EXE & goto DONE :DONE
Это будет молниеносно в Linux, но я недостаточно знаком с Windows-интерфейсом пакетного скриптинга.
По сути, я хочу найти серию файлов, соответствующих определенному шаблону, и получить файл с самой последней измененной датой.
Я получил, насколько:
for %%X in (*.exe) do ( REM Do stuff.... )
Но я не уверен, какие существуют операторы сравнения или есть ли лучший способ сделать это.
Кто-нибудь предлагает какие-либо хорошие решения? В идеале это будет включать ванильную установку Vista; так что никакой особой хитрости, такой как cygwin / etc.
Ах, нашел это:
for /f %%x in ('dir *.exe /B /O:-D') do set NEWEST_EXE & goto DONE :DONE
Почти наверняка есть более разумный способ сделать это в PowerShell.
Но если это должен быть cmd.exe:
FOR /f %f IN ('DIR /b /od *.exe') DO @SET last=%f ECHO %last%
DIR /b
перечисляет только имя файла, как ls -1
хотелось бы; /od
есть финиковой курс заказа.
Таким образом, последняя итерация устанавливает имя последнего файла в списке.