从 %%i 变量获取文件名

nys*_*os3 4 windows cmd ffmpeg batch-file

我有一个脚本,可以使用ffmpeg. 缺点是它保留了 .mkv 扩展名,只添加了 .mp4 (例如:file.mkv.mkp4)。我知道%~n可以用来获取没有扩展名的名称,但我似乎无法弄清楚。

这是我的原始脚本:

for %%i IN (*.mkv) DO (ffmpeg -y -ss 00:00:00 -threads 6 -i "%%i" -vcodec copy -f mp4 -strict experimental -acodec aac -ab 128k -ac 2 "%%i.mp4")
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

for %%i IN (*.mkv) DO (ffmpeg -y -ss 00:00:00 -threads 6 -i "%~ni.mkv" -vcodec copy -f mp4 -strict experimental -acodec aac -ab 128k -ac 2 "%~ni.mp4")
Run Code Online (Sandbox Code Playgroud)

Ans*_*ers 6

在批处理脚本中循环变量的百分号必须加倍,因此您必须%%~ni使用%~ni. 请参阅文档中的示例部分。