2015-05-14 52 views
0

例如,在一個目錄中,我有名爲name1.eps, name2.eps, ...的N .eps文件以及更多的pdf文件。但在這些pdf文件中,正好有N個pdf文件與eps文件具有相同的文件名,即name1.pdf, name2.pdf,...使用cmd批量查找具有相同文件名的所有文件

所以我想要一個可以掃描當前目錄的批處理,列出所有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批處理的新手。有人能教我如何實現我上面提到的整個過程。非常感謝!

+2

'FOR/F 「delims =」 %在G( 'DIR/B文件\ *。每股收益')做@if存在 「%〜dpnG.pdf」 @echo 「%〜FG」,「%〜 dpnG.pdf「'是我最初的提示。 [瞭解更多](http://ss64.com/nt/syntax-args.html)。然後,如有必要,請編輯您的問題,粘貼您的腳本並隨時提出更多...或者,如果您得到解決方案,請按照[回答]您自己的問題... – JosefZ

回答

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")) 
相關問題