2013-04-30 129 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,因为您有太多的文件会在几秒钟内填满屏幕缓冲区。当你准备好去的时候,把它删除。

相关问题