繁体   English   中英

Powershell 中复制 CreationDate 时出错:此时 .CreationTime 是意外的

[英]Error on copying CreationDate in Powershell: .CreationTime was unexpected at this time

我尝试在使用 ffmpeg 转换后复制原始文件的日期,但它给了我以下错误:“.CreationTime 此时是意外的”。

脚本:

set /A g=5
set /A crf=20
set encoding=x265
set targetFolder=.\converted

for %%f in (.\*.mp4) do (
    echo "fullname: %%f"
    echo "name: %%~nf"
    ffmpeg -i "%%f" -vcodec "lib%encoding%" -crf %crf% -g %g% "%targetFolder%\%%~nf.crf%crf%.%encoding%.mp4"
    $(Get-Item "%targetFolder%\%%~nf.crf%crf%.%encoding%.mp4").CreationTime=(Get-Item "%%f").CreationTime
    $(Get-Item "%targetFolder%\%%~nf.crf%crf%.%encoding%.mp4").LastWriteTime=(Get-Item "%%f").LastWriteTime
    $(Get-Item "%targetFolder%\%%~nf.crf%crf%.%encoding%.mp4").LastAccessTime=(Get-Item "%%f").LastAccessTime
)

注意:在循环外命令有效:

$(Get-Item ".\converted\VID_20200712_103210.crf20.x265.mp4").CreationTime=(Get-Item ".\VID_20200712_103210.mp4").CreationTime

我将我的脚本更新为 PowerShell 脚本,它现在可以工作了:

$g=5
$crf=20
$encoding="x265"
$targetFolder=".\converted"

foreach ($f in (Get-ChildItem -Path ".\*.mp4")) {
    Write-Host "fullname: $f"
    Write-Host "name: $($f.BaseName)"
    ffmpeg -i "$f" -vcodec "lib$encoding" -crf $crf -g $g "$($targetFolder)\$($f.BaseName).crf$crf.$encoding.mp4"
    (Get-Item "$($targetFolder)\$($f.BaseName).crf$crf.$encoding.mp4").CreationTime=(Get-Item $f).CreationTime
    (Get-Item "$($targetFolder)\$($f.BaseName).crf$crf.$encoding.mp4").LastWriteTime=(Get-Item $f).LastWriteTime
    (Get-Item "$($targetFolder)\$($f.BaseName).crf$crf.$encoding.mp4").LastAccessTime=(Get-Item $f).LastAccessTime
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM