2012-09-14 169 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 

這個批處理文件將改變默認打印機,打印文件夾中的一切,然後更改默認打印機回到