我对批处理文件编程完全不熟悉,所以我在这里有点迷失,无论如何都可以这样做吗?
我在c:\myfolder
txt文件,pdf,xls,bat等。我想有一个循环来识别所有不是pdf,tif或bat的文件,在这种情况下,我会运行一个命令将该文件转换为pdf,使用以下命令:
C:\PDFCreator\PDFCreator.exe /PrintFile="C:\myFolder\theFileNameToConvert"
如果文件较大,转换可能需要大约10秒到20秒
感谢 卡洛斯
答案 0 :(得分:1)
for /f "delims=" %%a in ('dir /b /a-d *') do if /i "%%~xa" neq ".pdf" if /i "%%~xa" neq ".tif" if /i "%%~xa" neq ".bat" C:\PDFCreator\PDFCreator.exe /PrintFile="C:\myFolder\%%~na"
如果您的C:\PDFCreator\PDFCreator.exe
命令正确,应该按照您的意愿执行 - 它似乎指定了printfile而不是源文件。
for /f
读取dir /b /a-d
的每一行(目录列表,基本[仅文件名]没有目录名称)并依次将每个行分配给meatvariable %%a
。 %%~xa
表示扩展名,因此三个级联if
表示if(/ i =不区分大小写)文件“%% a”的扩展名是对土豆的NotEQual,然后进行下一次测试。获取所有NotEQual testss,然后使用PDFCreator
执行%%~na
命令 - 仅%%a
文件的名称部分。
答案 1 :(得分:1)
从命令行,假设当前目录是`" c:\ myFolder":
for /f "eol=: delims=" %F in ('dir /b /a-d^|findstr /live ".pdf .tif .bat"') do C:\PDFCreator\PDFCreator.exe /PrintFile="%F"
如果在批处理文件中,百分比加倍:(我还将代码格式化为多行,以便于查看)
@echo off
pushd "c:\myFolder"
for /f "eol=: delims=" %%F in (
'dir /b /a-d^|findstr /live ".pdf .tif .bat"'
) do C:\PDFCreator\PDFCreator.exe /PrintFile="%%F"
popd