我最近使用一个叫做 photorec 的工具恢复了许多已删除的文件 -http://www.cgsecurity.org/wiki/PhotoRec
救命神器。唯一的问题是恢复的文件的名称被该程序生成的一些随机字符串替换。(由于用户删除文件,文件名和目录结构丢失)。
因此,我运行了另一个名为 photorecsorter 的程序,将恢复的文件按其文件扩展名分类到文件夹中(pdf 在一个文件夹中,ppt 在另一个文件夹中,依此类推) http://builtbackwards.com/projects/photorec-sorter/
我恢复了大约 100K+ 个文件,所以我不能要求用户打开文件并查看内容以找到他们要查找的内容。我知道在 Word 文档中,文件元数据(标题)可以帮助我检索两个关键信息元素,然后可以使用这两个信息元素重命名该文件 - Word 文档的标题和上次修改日期。一旦我知道如何对 Word 文档进行此操作,也许我可以自己对其他 Office 扩展和 PDF 进行此操作。我在网上查找了一些工具,但在尝试之前 - 我想看看专家在这里会提出什么建议。
谢谢
答案1
如下所示的 VBS(VBScript)文件至少应该对 Word 文档有所帮助:
Option Explicit
Dim objWord, objDoc
Set objWord = CreateObject("Word.Application")
objWord.Visible = False
objWord.DisplayAlerts = False
objWord.Documents.Open "C:\MyDoc.docx", False, True ' path, confirmconversions, readonly
Set objDoc = objWord.ActiveDocument
MsgBox "Title: """ & objDoc.BuiltInDocumentProperties("Title") & """"
MsgBox "Subject: """ & objDoc.BuiltInDocumentProperties("Subject") & """"
MsgBox "Author: """ & objDoc.BuiltInDocumentProperties("Author") & """"
MsgBox "Creation Date: """ & objDoc.BuiltInDocumentProperties("Creation Date") & """"
MsgBox "Last Save Time: """ & objDoc.BuiltInDocumentProperties("Last Save Time") & """"
objWord.Quit 0 ' wdDoNotSaveChanges
Set objWord = Nothing
Set objDoc = Nothing
您可以使用文件系统对象遍历目录中的所有 DOC/DOCX 文件,并改名根据返回的属性字符串。
对于 Excel 或 PowerPoint 文件,使用Excel 应用程序或者PowerPoint.应用程序当您创建文档对象时。如果您遇到困难,只需在网上搜索相关的办公自动化 VBScript 教程即可。
显然,没有通用方法来检索所有文件格式的元数据,因此其他格式(如 PDF)将需要完全不同的解决方案。如果您需要帮助,我建议您搜索网络或发布新问题。