我想使用 ffmpeg 将 .m4a 文件转换为 .mp3 文件。
我可以为每个文件都这样做,但这需要花费很多精力才能输入。
ffmpeg -i '.\song.m4a' -ac 2 -b:a 192k '.\song.mp3'
有没有办法使用powershell使用变量来做到这一点?前任:
ffmpeg -i $v -ac 2 -b:a 192k $v.mp3
问题在于,-ac
flag 被视为路径的一部分,不再是 ffmpeg 的一部分。在powershell中有没有办法解决这个问题?
或者这可以用数组来完成吗?如果我使用
$v=Get-ChildItem -Name
并在 ffmpeg 命令中使用 foreach 循环遍历数组。我对 PowerShell 很陌生,没有很多经验,但在我看来应该可以做到。
我会很感激我能得到的任何帮助。
最佳答案
如果你只是 Get-Childitem -Name
你最终会得到 song.m4a.mp3
除非您使用替换语句等来解决此问题。如果将其保留为对象,则可以引用名称,然后再引用基本名称。
get-childitem -Filter *.m4a |
foreach {ffmpeg -i “$($_.name)“ -ac 2 -b:a 192k “$($_.basename).mp3”}
我没有对此进行测试,因此您可能需要调整报价。
关于windows - 如何在长 PowerShell 命令中使用变量而不破坏命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64360708/