获取具有特定扩展名的目录中的最新文件

时间:2016-03-29 12:53:24

标签: batch-file

下面的批处理命令将为我提供文件夹中的最新文件,但我只查找具有特定扩展名的文件。任何人都可以解释如何指定扩展名(即.jpg

FOR /F "delims=|" %%I IN ('DIR "C:\Jenkins\Releases\C9metro" /B /O:D') DO SET NewestFile=%%I

2 个答案:

答案 0 :(得分:2)

现在很早......想出这个:

'DIR "C:\Jenkins\Releases\C9metro\*.jpg"

答案 1 :(得分:1)

我建议使用以下几行:

FOR /F "eol=| delims=" %%I IN ('DIR "C:\Jenkins\Releases\C9metro\*.jpg" /A-D /B /O-D /TW 2^>nul') DO (
    SET NewestFile=%%I
    GOTO FoundFile
)
ECHO No *.jpg file found!
GOTO :EOF

:FoundFile
ECHO Newest *.jpg file is: %NewestFile%

参数/A-D确保忽略子目录,这些子目录也偶然以字符串.jpg结束。

参数/B打开裸格式,在这种情况下只返回没有路径的文件名 DIR

参数/O-D导致按日期排列 DIR 找到的文件,顺序从最新到最旧。

参数/TW确保最后修改时间(写访问)用于按日期顺序列出找到的JPEG文件。

在匹配通配符模式*.jpg的第一个找到的文件上退出循环,这使得此方法比将所有文件名分配给变量NewestFile直到找到的最后一个文件更快。