gpt4 book ai didi

powershell - 将参数字符串转换为 Here String

转载 作者:行者123 更新时间:2023-12-04 14:43:42 25 4
gpt4 key购买 nike

我想用 Start-Process 和 -Wait 调用 ffmpeg,我遇到了 $ArgumentList 的问题

function convertgif {

$ArgumentList = @'
-i $($args[0]) -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" "$([IO.Path]::ChangeExtension($args[0], 'mp4'))"
'@
Start-Process -FilePath "C:\ffmpeg\bin\ffmpeg.exe" -ArgumentList $ArgumentList -Wait -NoNewWindow;
}

我找不到如何修复错误

$args[0]: No such file or directory

最佳答案

你不想要一个“here-string”,你想要一个可以用空格连接的数组

function convertgif {
$ArgumentList = @(
"-i"
'"' + $args[0] + '"'
"-movflags"
"faststart"
"-pix_fmt"
"yuv420p"
"-vf"
'"scale=trunc(iw/2)*2:trunc(ih/2)*2"'
'"' + [IO.Path]::ChangeExtension($args[0], 'mp4') + '"'
)

Start-Process -FilePath "C:\ffmpeg\bin\ffmpeg.exe" -ArgumentList $ArgumentList -Wait -NoNewWindow;
}

在这种情况下,"-movflags""faststart" 是两个独立的参数,尽管从 ffmpeg 的角度来看,它们属于一起。但这纯粹是 ffmpeg 如何解析其参数的语义细节,PowerShell(或 Windows,就此而言)并不关心。

当然,无论您决定通过分别给出 "-movflags""faststart" 还是作为 "-movflags faststart" 由你决定。

关于powershell - 将参数字符串转换为 Here String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68784702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com