2013-04-30 97 views
2

我有一個ZIP文件的32,000 PDF報告,我需要重命名爲一個更具描述性的名稱,並生成所有文件及其子文件夾的TXT文件。我已經用了幾年批處理文件 - 獲取文件摘要到文本文件

dir /b /s >info.txt

命令行了,但顯然這只是給當前的文件名是什麼。但是,當將鼠標移到文件上時,我會看到完整的標題,作者等。當我右鍵單擊PDF選項卡中的某個文件時,不是在摘要選項卡中。

所以 - 我的問題是如何將這些文件重命名爲標題字段中的標題,從而使我能夠快速輕鬆地瀏覽列表?

感謝 克里斯

+2

我懷疑可以從一個簡單的批處理文件/命令。如果你願意使用powershell或wscript:http://blogs.technet.com/b/heyscriptingguy/archive/2008/08/13/how-can-i-find-files-metadata.aspx – rene 2013-04-30 18:59:03

+1

我不是當然,但WMIC可能會提供幫助?請參閱http://superuser.com/questions/363278/is-there-a-way-to-get-file-metadata-from-the-command-line – 2013-04-30 19:17:26

+0

感謝Rene/Nate - 不幸的是,我的用戶權限非常有限我的個人電腦在工作,因爲這些信息非常機密,我無法將它帶回家工作。我希望能夠通過批處理來做到這一點,但顯然這是行不通的。有什麼可以在VBA或甚至VB.NET中完成(我有2005)可以做我需要的嗎?再次感謝 :-) – user2337160 2013-05-02 13:37:01

回答

0

這是一種使用PDFTK

@echo off 
setlocal 

set "pdftk=c:\Program Files\PDF Labs\PDFtk Server\bin\pdftk.exe" 
set "pdfs=C:\PDFS" 
set "rep=%temp%\rep.txt" 

for /f "tokens=*" %%a in ('dir %pdfs%\*.pdf /s /b /a-d') do (
    if exist %rep% del %rep% 
    "%pdftk%" "%%a" dump_data output "%rep%" 
    for /f "tokens=1,2* delims=: " %%b in ('findstr /n .* %rep%') do (
     if "%%b" equ "6" echo(ren "%%a" "%%d.pdf" 
    )  
    pause 
) 

更改文件路徑爲適合您的環境去做。這將回應重命令將在屏幕上顯示的內容。如果一切看起來不錯,請從人工前面刪除echo(以實際操作。此外,我在循環中添加了一個pause,因爲您有太多的文件會在幾秒鐘內填滿屏幕緩衝區。當你準備好去的時候,把它刪除。

相關問題