使用 cmd batch 查找具有相同文件名的所有文件
Using cmd batch to find all the file with the same filename
例如,在一个目录中,我有 N 个名为 name1.eps, name2.eps, ...
的 .eps 文件以及更多的 pdf 文件。但在这些pdf文件中,恰好有N个pdf文件与eps文件同名,即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批处理的新手。有人可以教我如何实现我上面提到的整个过程。非常感谢!
我想办法了。以下批处理文件完成整个工作。
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"))
例如,在一个目录中,我有 N 个名为 name1.eps, name2.eps, ...
的 .eps 文件以及更多的 pdf 文件。但在这些pdf文件中,恰好有N个pdf文件与eps文件同名,即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批处理的新手。有人可以教我如何实现我上面提到的整个过程。非常感谢!
我想办法了。以下批处理文件完成整个工作。
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"))