转换文件并从源文件复制 LastWriteTime

转换文件并从源文件复制 LastWriteTime

我想转换视频并将其时间设置为与源文件的时间相同。我使用 ffmpeg 批量转换文件夹中的文件

for %%a in ("*.MP4") do ffmpeg -i "%%a" -c:v libx264 -c:a aac "%%~naC.mp4"
pause

然后我有一个 powershell 代码,我用它与 excel 来匹配文件 LastWriteTime

powershell (Get-ChildItem 'P1290526C.mp4').LastWriteTime = (Get-ChildItem 'P1290526.MP4').LastWriteTime

有什么办法可以将这两个代码合并在一起,以便我只使用一个脚本/bat 文件?

非常感谢。

答案1

将 PowerShell 命令放入相同的 for 循环中:

for %%A in ("*.MP4") do (
    ffmpeg -i "%%A" -c:v libx264 -c:a aac "%%~nAC.mp4"
    powershell -NoP -C "(gi '%%~nAC.mp4').LastWriteTime = (gi '%%A').LastWriteTime"
)

gi是Get-Item的别名,无需用Get-ChildItem进行迭代。

由于这将为每个转换后的文件调用 powershell,因此以下做法更有效:

  • 让 powershell 完成整个工作

  • 或者在转换所有文件后仅运行一次 powershell

相关内容