【发布时间】:2016-03-29 12:53:24
【问题描述】:
下面的批处理命令将为我获取文件夹中的最新文件,但我只查找具有特定扩展名的文件。谁能解释如何指定扩展名(即.jpg)
FOR /F "delims=|" %%I IN ('DIR "C:\Jenkins\Releases\C9metro" /B /O:D') DO SET NewestFile=%%I
【问题讨论】:
标签: batch-file
下面的批处理命令将为我获取文件夹中的最新文件,但我只查找具有特定扩展名的文件。谁能解释如何指定扩展名(即.jpg)
FOR /F "delims=|" %%I IN ('DIR "C:\Jenkins\Releases\C9metro" /B /O:D') DO SET NewestFile=%%I
【问题讨论】:
标签: batch-file
我建议使用以下几行:
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 直到找到最后一个文件更快。
【讨论】:
现在还早...想通了这个:
'DIR "C:\Jenkins\Releases\C9metro\*.jpg"
【讨论】: