批处理文件打印具有特定扩展名的文

时间:2014-12-13 00:55:18

标签: batch-file

我对批处理文件编程完全不熟悉,所以我在这里有点迷失,无论如何都可以这样做吗?

我在c:\myfolder txt文件,pdf,xls,bat等。我想有一个循环来识别所有不是pdf,tif或bat的文件,在这种情况下,我会运行一个命令将该文件转换为pdf,使用以下命令:

C:\PDFCreator\PDFCreator.exe /PrintFile="C:\myFolder\theFileNameToConvert"

如果文件较大,转换可能需要大约10秒到20秒

感谢 卡洛斯

2 个答案:

答案 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