Extracción de metadatos para cambiar el nombre de archivos recuperados

Extracción de metadatos para cambiar el nombre de archivos recuperados

Recientemente recuperé muchos archivos eliminados usando una herramienta llamada photorec.http://www.cgsecurity.org/wiki/PhotoRec

Gran salvavidas. El único problema es que los nombres de los archivos recuperados se reemplazan por alguna cadena aleatoria que genera este programa. (El nombre de archivo y las estructuras de directorio se perdieron debido a que el usuario eliminó los archivos).

Así que ejecuté otro programa llamado photorecsorter para ordenar los archivos recuperados en carpetas por sus extensiones (pdf en una carpeta, ppt en otra, etc.) http://builtbackwards.com/projects/photorec-sorter/

Recuperé alrededor de 100.000 archivos, por lo que no puedo pedirle al usuario que abra los archivos y mire el contenido para encontrar lo que está buscando. Sé que los metadatos (encabezados) de los archivos de documentos de Word pueden ayudarme a recuperar dos elementos clave de información que luego se pueden usar para cambiar el nombre de ese archivo: el título del documento de Word y la última fecha de modificación. Una vez que sepa cómo hacer esto para documentos de Word, tal vez pueda hacerlo para otras extensiones de Office y PDF por mi cuenta. Busqué algunas herramientas en línea, pero antes de probar algo, quería ver qué pueden sugerir los expertos aquí.

Gracias

Respuesta1

Un archivo VBS (VBScript) como el siguiente debería ayudar al menos con documentos de 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

Puedes usarObjeto del sistema de archivospara recorrer todos los archivos DOC/DOCX en un directorio, yrebautizarellos en función de las cadenas de propiedad devueltas.

Para archivos de Excel o PowerPoint, utiliceAplicación ExceloPowerPoint.Aplicacióncuando crea los objetos del documento. Si se queda atascado, simplemente busque en la red tutoriales relevantes de VBScript de automatización de Office.

Obviamente, no existe un método general para recuperar metadatos para todos los formatos de archivos, por lo que otros formatos como PDF requerirán una solución completamente diferente. Te recomiendo que busques en la red o publiques una nueva pregunta si necesitas ayuda.

información relacionada