批量对于当前目录下的flv文件执行ffmpeg, 不知道怎么写.

当前目录下有一堆flv文件

中文名1.flv
中文名2.flv
...
中文名999.f1lv

想递归执行命令, 以第一个文件为例: ffmpeg -i 中文名1.flv 中文名1.mp4

我尝试多种方式, 最接近的是:

Get-ChildItem *.flv | ffmpeg -i $file.Name $file.BaseName+'.mp4'

输出是:

"c:\program files\ffmpeg\bin\ffmpeg.exe" -i "中文名1.flv" "中文名1" +.mp4

当然上面这条不符合ffmpeg的语法, 问题出在最后的: "中文名1" +.mp4, 而我是想要"中文名1.mp4"这样的形式.

不知道怎么才能将.mp4和前面的文件名1合并起来成为一个字符串. 我也尝试了 -join($file.Basename, ".mp4"), 效果一样.

请教熟悉powershell的朋友帮我解决我的问题. 感谢.

阅读 2.5k
1 个回答

把单引号换成双引号

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏