Copiar metadatos del sistema de archivos (modifyDate, etc.) de un archivo a otro

Copiar metadatos del sistema de archivos (modifyDate, etc.) de un archivo a otro

Estoy reconvirtiendo mis archivos antiguos y usando el siguiente código para copiar metadatos del archivo antiguo al nuevo:

for %%f in (*.mp4) do ffmpeg -i "%%f" -i "%%~nf_1.mp4" -map 1 -c copy -map_metadata 0 -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a "%%~nf_.mp4"

Sin embargo, esto no copia los metadatos del sistema de archivos, como la fecha de modificación. ¿Hay alguna forma de copiar esos metadatos? ¿Cualquier sugerencia?

Gracias.

PD: estoy en Windows 10

Respuesta1

Los metadatos que copian ffmpeg son los datos asociados con el video. La fecha de modificación es un atributo del archivo, administrado por Windows pero no por ffmpeg.

Si ha convertido los archivos de la carpeta C:\dirsourcea la carpeta D:\dirtarget, el siguiente script de PowerShell copiará la fecha de modificación del origen al destino:

Get-ChildItem "C:\dirtarget\" *.mp4 | ForEach-Object {
    $_.LastWriteTime = (Get-Item ("C:\dirsource\"+$_.Name)).LastWriteTime
}

También puedes hacer lo mismo con los atributos CreationTimey LastAccessTime.

Cree un archivo llamado myname.ps1y cópielo dentro del texto anterior. Inicie una sesión de PowerShell, use cdpara ubicarse en la carpeta que contiene el script y luego ejecute el comando .\myname.ps1.

Si recibe un mensaje de error que dice "No se puede cargar porque la ejecución de scripts está deshabilitada en este sistema", ejecute el siguiente comando en la ventana de PowerShell y luego repita lo anterior:

   Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted 

información relacionada