如何在Windows 10 powershell for ffmpeg的Linux中运行此命令?
for file in D:input*.mkv; do ffmpeg -i "$file" -map 0:v:0 -map 0:a:0 -map 0:a:1 -map 0:s:0 -map 0:s:1 -c:v copy -c:a flac -c:s copy D:output; done
我试过
for file in D:input*.mkv; do ./ffmpeg -i "$file" -map 0:v:0 -map 0:a:0 -map 0:a:1 -map 0:s:0 -map 0:s:1 -c:v copy -c:a flac -c:s copy D:output; done
但我得到了这个错误:
At line:1 char:4
+ for file in D:input*.mkv; do ./ffmpeg -i "$fil ...
+ ~
Missing opening '(' after keyword 'for'.
At line:1 char:52
+ for file in D:input*.mkv; do ./ffmpeg -i "$fil ...
+ ~
Missing statement body in do loop.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingOpenParenthesisAfterKeyword
那么,如何更改此命令以在Windows 10 powershell中正常运行呢?
如错误所示,PowerShell无法识别bash
的for
循环语法。
在PowerShell中,您可以执行以下操作:
Get-ChildItem -Path D:input -Filter *.mkv |ForEach-Object {
./ffmpeg -i $_.FullName -map 0:v:0 -map 0:a:0 -map 0:a:1 -map 0:s:0 -map 0:s:1 -c:v copy -c:a flac -c:s copy D:output
}
使用"vs 2022的开发者命令提示符"而不是powershell(在windows终端中(。