批处理文件,只在部分已知的名称中查找和运行目录中的最新文件?

时间:2013-10-23 16:23:55

标签: date batch-file filenames execute

如何在简单的Windows 7兼容批处理文件中编写:

如果文件名以“c:\ my folder \ myfile * .exe”开头,则只运行最近创建的文件。

例如,如果我在“c:\ my folder \”中有10个文件,并且它们都类似地命名为myfile * .exe,并且myfileBOB.exe是要创建的此命名文件的最后一个 - 如何捕获此文件out(文件夹还包含其他不同类型的常规文件)由filename myfile *自动生成并创建日期执行?

非常感谢!

1 个答案:

答案 0 :(得分:4)

按日期升序对文件进行排序,并保留最后一个(最近的)文件。

@echo off
setlocal
pushd "c:\my folder"
set "file="
for /f "eol=: delims=" %%F in ('dir /b /a-d /od myfile*.exe') do set "file=%%F"
if defined file "%file%"
popd

或按日期降序排序文件,并在第一次迭代后退出循环。

@echo off
pushd "c:\my folder"
for /f "eol=: delims=" %%F in ('dir /b /a-d /o-d myfile*.exe') do "%%F"&goto :break
:break
popd