將檔案系統元資料(modifyDate 等)從一個檔案複製到另一個文件

將檔案系統元資料(modifyDate 等)從一個檔案複製到另一個文件

我正在重新轉換舊文件,並使用以下程式碼將元資料從舊文件複製到新文件:

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"

但是,這不會複製檔案系統元數據,例如修改日期。有什麼方法可以複製該元資料嗎?有什麼建議嗎?

謝謝。

PS 我使用的是 Windows 10

答案1

複製 ffmpeg 的元資料是與視訊關聯的資料。修改日期是檔案的屬性,由 Windows 管理,但不受 ffmpeg 管理。

如果您已將檔案從 資料夾 轉換C:\dirsource為 資料夾D:\dirtarget,則下列 PowerShell 腳本會將修改日期從來源複製到目標:

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

您也可以對屬性CreationTime和執行相同的操作LastAccessTime

建立一個名為的檔案myname.ps1並將其複製到上述文字中。啟動 PowerShell 會話,使用cd定位到包含腳本的資料夾,然後執行命令.\myname.ps1

如果您收到一條錯誤訊息“無法加載,因為在此系統上停用了運行腳本”,請在 PowerShell 視窗中執行以下命令,然後重複上述操作:

   Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted 

相關內容