Kopieren von Dateisystem-Metadaten (ModifyDate usw.) von einer Datei in eine andere

Kopieren von Dateisystem-Metadaten (ModifyDate usw.) von einer Datei in eine andere

Ich konvertiere meine alten Dateien erneut und verwende den folgenden Code, um Metadaten aus der alten Datei in die neue zu kopieren:

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"

Allerdings werden dabei keine Dateisystemmetadaten wie das Änderungsdatum kopiert. Gibt es eine Möglichkeit, diese Metadaten zu kopieren? Irgendwelche Vorschläge?

Danke.

PS: Ich verwende Windows 10

Antwort1

Die Metadaten, die ffmpeg kopiert, sind die mit dem Video verknüpften Daten. Das Änderungsdatum ist ein Attribut der Datei, das von Windows, aber nicht von ffmpeg verwaltet wird.

C:\dirsourceWenn Sie die Dateien aus dem Ordner in den Ordner konvertiert haben D:\dirtarget, kopiert das folgende PowerShell-Skript das Änderungsdatum von der Quelle zum Ziel:

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

Dasselbe können Sie auch mit den Attributen CreationTimeund tun LastAccessTime.

Erstellen Sie eine Datei mit dem Namen myname.ps1und kopieren Sie den obigen Text hinein. Starten Sie eine PowerShell-Sitzung, verwenden Sie , cdum zum Ordner mit dem Skript zu gelangen, und führen Sie dann den Befehl aus .\myname.ps1.

Wenn Sie die Fehlermeldung „Kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist“ erhalten, führen Sie den folgenden Befehl im PowerShell-Fenster aus und wiederholen Sie anschließend den obigen Vorgang:

   Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted 

verwandte Informationen