4

您好我是 CMD 的新手,但我想制作一个批量打印解决方案。

我知道使用:

"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 文件,在其中可以写下我需要打印的文件的名称。然后在一个批处理文件中创建一个循环,该循环将读取 TEXT 的每一行并将我的变量 XXXX 更改为在 TEXT 的每一行中指定的文件名。

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

4

4 回答 4

3

在 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 系统,但我在这里依靠我老化的记忆......

于 2012-09-14T03:20:06.830 回答
1

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

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

2打印机是免费的!

于 2014-08-10T09:58:43.823 回答
1

所有,扩展库尔特的答案......这就是我所做的:


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

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

于 2018-01-03T15:52:57.357 回答
0

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

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

您可以在 MS Technet上获得有关for语法和选项的更多信息

于 2012-09-14T03:18:55.133 回答