【问题标题】:Using cmd batch to find all the file with the same filename使用cmd批处理查找所有具有相同文件名的文件
【发布时间】:2015-05-14 13:14:30
【问题描述】:

例如,在一个目录中,我有 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 批处理的新手。有人可以教我如何实现我上面提到的整个过程。非常感谢!

【问题讨论】:

  • for /f "delims=" %G in ('dir /b files\*.eps') do @if exist "%~dpnG.pdf" @echo "%~fG" "%~dpnG.pdf" 是我最初的提示。 Learn more。然后,如有必要,edit 您的问题,粘贴您的脚本并随时提出更多问题...

标签: windows batch-file cmd


【解决方案1】:

我想出了一个办法。以下批处理文件完成整个工作。

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"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    相关资源
    最近更新 更多