2011-08-18 127 views
0

我正在尋找一個批處理文件或將像PDF文件名稱合併的VBScript。應該合併的文件將具有與第一個「。」相同的文件名。我有整個文件夾包含約4000個文件。的文件擴展名匹配的格式如下如何批量合併PDF文檔

1111111111111111.22222222.pdf ==> 1是任意16個數字0-9和2是任意的8個數字0-9

我想合併的文件夾的文件一樣在批次樣式。所有具有相同文件名的文件應該合併爲「。」。

舉例:1111111111111111.25484686.pdf應該1111111111111111.54874568而5555555555555555.78468767合併,應當合併與5555555555555555.48687654和5555555555555555.68974582

的文件可以輸出到其他文件夾,但不是必需的。輸出後的新文件名只要有效就不重要。

我知道有一些軟件可以處理這個問題,但拖拽所有類似文件以合併它們需要很長時間。

+1

批處理文件\ VBscript沒有固有的能力來合併PDF文件。所以首先你需要找到一些可以做到這點的軟件,並且還有一個可用於VBS或批處理文件的API。我建議你可以在[Superuser](http://superuser.com)上詢問這個問題。當你發現後,你可以在這裏尋求關於如何編寫腳本來自動處理的幫助。 –

+0

我同意@ ho1。我不想關閉你的問題,但如果你按照建議尋找特定於你的目的的軟件,那麼會更好,然後回來編輯這個腳本問題。 –

+0

我希望這不會是這樣。我已經嘗試了一切,每個人都說過同樣的事情。這是不幸的,因爲我知道這對許多公司是有效的。不管怎麼說,多謝拉。 –

回答

3

谷歌搜索發現http://www.pdfsam.org/ - 一個網站,提供免費的PDF合併工具,有一個命令行界面(以及一個圖形用戶界面)。我不知道這個效果如何。確保您獲得本網站提供的免費實用程序,而不是在同一網站上公佈的競爭對手的解決方案。

還有很多其他的公用設施,其中大部分是收費的。

一旦你弄清楚如何使用你選擇的工具的命令行界面,你可以使用下面的批處理文件來動態構建你要合併的文件列表。 (此批代碼是未經考驗的。這個概念肯定會工作,但它可能需要一些調試)

@echo off 
setlocal enableDelayedExpansion 

:: This initial loop determines which files need to be merged 
:: and then calls :merge for each unique set of files. This top 
:: loop should work no matter what utility you choose. 
set "current=" 
set cnt=0 
:: for current directory, LOC should be empty (or .\) 
:: for any other path, LOC should include \ at end 
set "LOC=" 
for %%F in ("%LOC%*.*.pdf") do (
    for /f "tokens=1,* delims=." %%A in ("%%~nF") do (
    if "%%A" neq "!current!" (
     if defined current call :merge 
     set cnt=0 
     set current=%%A 
    ) 
    set /a cnt+=1 
    set pdf.!cnt!=%%~fF 
) 
exit /b 


:merge 
:: This routine should build the command line to merge the current 
:: file list contained in pdf.1 through pdf.!cnt! 
:: 
:: Below is code to build a hypothetical file list to be used on 
:: the merge command line. This will obviously need to be modified 
:: based on the syntax of your chosen merge utility. 
:: 
    set "list=" 
    for /l %%N in (1 1 !cnt!) do set list=!list! -f "!pdf.%%N!" 
:: 
:: 
:: The rest is up to you! 
:: 
exit /b 
0

這個軟件,Dysprosium,而不需要編寫一個批處理文件是必要的,沒有鼠標拖放及可批量合併可以自由獲取和使用。如預期的那樣將所有批次放在同一個文件夾中就足夠了。但是您需要使硬件資源與批處理文件的大小成比例。

這是一個簡單輕便的「JAR」文件,便攜式,無需安裝在操作系統上。

由於它是基於Java的軟件,因此還需要增加Java運行時可用的Java內存。 Java需要獲取一部分物理內存來渲染大型PDF文件。這個wiki解釋瞭如何增加Java運行時內存。

(恕我直言)使用現成的軟件,您無法合併總大小超過3GB-3.5GB的PDF批處理。