批量打印文本文件中列出的PDF文件

批量打印文本文件中列出的PDF文件,pdf,command-line,printing,batch-file,cmd,Pdf,Command Line,Printing,Batch File,Cmd,你好,我是CMD的新手,但我想做一个批量打印解决方案 我知道使用: "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t "C:\file_1.pdf" 我可以打印文件1.pdf,但我真正需要的是打印多个文件,比如文件2,文件3。。。文件,因此我的指示将更改为: "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t "C:\XXXX.pdf

你好,我是CMD的新手,但我想做一个批量打印解决方案

我知道使用:

"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t "C:\file_1.pdf"
我可以打印文件1.pdf,但我真正需要的是打印多个文件,比如文件2,文件3。。。文件,因此我的指示将更改为:

"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /t "C:\XXXX.pdf"
我想制作一个文本文件,在那里我可以写下我需要打印的文件的名称。然后在批处理文件中创建一个循环,该循环将读取文本的每一行,并将变量XXXX更改为文本每一行中指定的文件名


这可能吗?我不笨,我学得很快,所以,如果有人能给我指出如何在批处理文件中处理变量的正确方向,以及如何从文本中读取信息,那就太棒了

这样的事情应该会让你开始:

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

您可以在cmd.exe窗口中获取有关
for
语法和选项的详细信息,并读取输出,或参阅

基本上,如果要批量打印目录中的所有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系统,但我在这里依赖老化的内存…

请从以下位置尝试2Printer命令行工具:

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


2打印机是免费的!

All,来扩展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

此批处理文件将更改默认打印机,打印文件夹中的所有内容,然后重新更改默认打印机

Kurt:出于兴趣,为什么要使用“^”而不是()?@DavidI.McIntosh:
^
()
不一样。上面上下文中的
^
只是一个换行符(在其他DOS环境中,它是一个转义字符)。我使用它是为了格式化,因此我的命令的每一位都可以在浏览器中看到。在Unix、Linux和Mac中,必须使用
\。DOS批处理文件中的
()`允许您对命令块进行分组(还允许像Ken White那样使用换行符)。是的,我两个都很了解。我只是好奇你是否有理由用^将它表示为两个物理行上的一个逻辑行(它同样可以用括号表示在多个物理行上)。在windows世界中,我很少看到有人使用^来逃避行尾。这并不是说它有什么问题,只是想知道为什么您会喜欢它。@DavidI.McIntosh:在windows世界中很少看到使用
^
,因为几乎没有批处理脚本作者知道它。我更喜欢它,因为它可以在eve中使用n括号不起作用的地方(括号只能在某些上下文中使用)。感谢您的回复。这正是我想知道的。当涉及()时,cmd.exe经常在解析时遇到问题。我想知道您是否有一个例子说明^失败?哈哈。我现在有时间的时候要做一些实验……它是免费的非商业用途: