windows - 如何在长 PowerShell 命令中使用变量而不破坏命令

标签 windows powershell ffmpeg

我想使用 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/

相关文章:

c++ - PocketPC c++ windows消息处理递归问题

windows - 复制文件安全权限

powershell - 在PowerShell中解析数​​千个小文件的最快方法

java - 进程正在暂停,直到我关闭程序

video - FFMPEG 编码视频文件所需的时间

java - "The filename or extension is too long error"使用渐变

java - WEPOS 的 JVM

algorithm - 有人有 PowerShell 的依赖关系图和拓扑排序代码片段吗?

xml - 使用Powershell在XML注释之间获取数据

windows - 为什么PowerShell在执行我的命令之前关闭ff-prompt.bat