2012-09-14 122 views
4

您好,我是CMD新手,但我想制作批量打印解决方案。批量打印文本文件中列出的PDF文件

我知道,使用:

"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t "C:\file_1.pdf" 

我可以打印file_1.pdf但我真正需要的是打印多个文件,比方说file_2,file_3 ... file_n,因此我的指令将变更为:

"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t "C:\XXXX.pdf" 

我想过做一个文本文件,在那里我可以写,我需要打印的文件的名称。然后在批处理文件中创建一个循环,读取TEXT的每一行,并将我的变量XXXX更改为TEXT每行中指定的文件的名称。

这可能吗?我不傻,而且学得很快,所以如果任何机构能够指出我如何在批处理文件中做变量的正确方向,以及如何从TEXT中读取信息,那将是太棒了。

回答

0

像这样的东西应该让你开始:

for /f %%i in (myfiles.txt) do (
    "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t "%%i%" 
) 

,您可以得到更多的信息,有关for的语法和选项here at MS Technet

3

运行for /?中的cmd.exe窗口和读取输出,或见Loop command: against a set of files

基本上,如果你想批量打印所有PDF目录,你可以做到以下几点:

for %i in (*.pdf) do^
    "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t %i 

这是直接在“DOS窗口”窗口中​​运行,如果要使用的线。如果从BAT文件运行,则需要用%%i替换%i

如果有文件要被印刷列举一行一行的* .txt文件:

for /f %i in (mypdfs.txt) do^
    "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t %i 

注:我没有试运行的命令,因为我没有Windows系统周围,但我凭着我的记忆老化这里...

+0

库尔特:出于兴趣,为什么你用^代替()? –

+0

@ DavidI.McIntosh:'^'和'()'是不一样的。上述上下文中的'^'仅仅是一个续行符号(在其他DOS环境中它是一个转义字符)。我使用它是为了格式化原因,所以我的每一个命令都可以在浏览器中看到。在Unix,Linux和Mac中,必须使用'\。 DOS批处理文件中的\(\)可以让你对命令块进行分组(也可以像Ken White那样使用换行符)。 –

+0

是的,我理解都很好。我只是好奇你是否有理由按照你在两条物理线路上作为一条逻辑线路的方式来呈现它(它可以同样在多条使用方括号的物理线路上呈现)。在Windows世界中,我很少见到任何人使用^来逃避行结束。并不是说它有什么问题,只是想知道为什么你对它有偏好。 –

1

从尝试2Printer命令行工具: http://doc2prn.com/

PDF文档打印列表命令行示例: 2Printer.exe -l“C:\ input files.txt”-prn“Canon MP610”

2打印机是免费的!

+0

它是免费的非商业用途:[“免费版本的2Printer具有与商业版本相同的功能,并允许您评估该程序或将其用于非商业需要。一个限制条件是 - 信息页面将出现在打印页面的工作。“(https://www.doc2prn.com/download) –

0

在通过命令line.-

总PDF打印机批量打印PDF文件是非常宝贵的批量print pdf files

总计PDF打印机也可以按文件日期/时间顺序打印。当您需要打印某些日期或时间的PDF文件并且不想手动排序时,它可以节省您的时间。您可以设置不同的打印选项(选择打印机或纸盒,或设置双面打印)。

总PDF打印机非常适合打印多页PDF文件。当您打印多个PDF文件时,您会在打印机托盘中获得一定量的纸张。将这些纸张分拣出来是一项艰巨的任务。因此Total PDF Printer允许您打印“分隔纸”。此分隔符将帮助您对另一个打印的PDF进行分类。

当您打印出多份文档并且希望页面的背面是空白而不是在第一页的背面有下一页时,这会派上用场。使用Total PDF Printer,您可以在每个文档之前或之后插入一个空白页面。

总计PDF可通过用户友好的GUI(参见屏幕截图),命令行或Windows桌面右键单击选项来处理打印机。

0

所有,对Kurt的回答展开......这是我做过什么:


RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n "Brother MFC-J6930DW Printer" 
Timeout /T 10 
CD\ 
cd Users\bill\Desktop\PrintMe 
Timeout /T 2 
for %%i in (*.pdf) do "C:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe" /t "%%i" 
Timeout /T 10 
RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n "HP OfficeJet Pro 8710 (Network)" 
Pause 

这个批处理文件将改变默认打印机,打印文件夹中的一切,然后更改默认打印机回到