使用cmd批处理查找具有相同文件名的所有文件

时间:2015-05-14 13:14:30

标签: windows batch-file cmd

例如,在目录中,我有名为name1.eps, name2.eps, ...的N个.eps文件以及更多的pdf文件。但是在这些pdf文件中,确实存在与pd文件具有相同文件名的N个pdf文件,即name1.pdf, name2.pdf,...

所以我想要一个可以扫描当前目录的批处理,列出所有eps文件和相应的pdf文件列表。

最后我想要另一个名为convert.bat的批处理,它使用两个参数来运行一系列命令,如下所示

convert.bat name1.eps name1.pdf
convert.bat name2.eps name2.pdf
.....
.....

convert.bat首先比较name.eps和name.pdf的修改时间,如果name.eps的修改时间比name.pdf更新,那么它将运行epstopdf name.eps,否则它什么都不做。

我真的是使用cmd批处理的新手。有人可以教我如何实现我上面提到的整个过程。非常感谢你!

1 个答案:

答案 0 :(得分:0)

我找到了办法。以下批处理文件完成整个工作。

SETLOCAL ENABLEDELAYEDEXPANSION

for %%G in (*.eps) do @if not exist "%%~nG.pdf" (epstopdf "%%G") else (
(for /f "delims=" %%i in ('dir /B /O:D "%%G" "%%~nG.pdf"') do set newest=%%~xi) & (
if !newest!==.eps epstopdf "%%G"))