Windows Batch Scripting: Newest File Matching a Pattern
This would be lightning quick in linux, but I'm not familiar enough with windows flavour of batch scripting.
Basically I want to look for a series of files matching a certain wildcard, and get the one with the most recent modified date.
I've gotten as far as:
for %%X in (*.exe) do (
REM Do stuff....
)
But I'm not sure what manner of comparison operators there are, or if there's a better way of doing this.
Anyone offer up any good solutions? Ideally it would involve a vanilla install of Vista; so no special trickery like cygwin/etc.
Ah, found it:
for /f %%x in ('dir *.exe /B /O:-D') do set NEWEST_EXE & goto DONE
:DONE
There's almost certainly a more sane way to do this in PowerShell.
But if it has to be cmd.exe:
FOR /f %f IN ('DIR /b /od *.exe') DO @SET last=%f
ECHO %last%
DIR /b
lists just the filename, like ls -1
would do; the /od
is of course date order.
So the last iteration sets the name of the last file in the list.