Windows 批处理脚本:与模式匹配的最新文件

Windows 批处理脚本:与模式匹配的最新文件

这在 Linux 中会非常快,但我对 Windows 风格的批处理脚本不太熟悉。

基本上,我想查找一系列与某个通配符匹配的文件,并获取修改日期最新的文件。

我已经做到了:

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

但我不确定存在哪些类型的比较运算符,或者是否有更好的方法来做到这一点。

有人能提供一些好的解决方案吗?理想情况下,它会涉及 Vista 的原始安装;因此不需要像 cygwin/etc 这样的特殊技巧。

答案1

啊,找到了:

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是按日期顺序。
因此最后一次迭代设置列表中最后一个文件的名称。

相关内容