将文件系统元数据(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 

相关内容