我有一个使用批处理和ffmpeg转换视频的脚本。但是,我不明白为什么%%~nf和%%~n1不返回文件名(没有格式)。我已经尝试过各种“%”来查看原因,虽然我完全失去了,因为%~1变量工作良好。
if not %Vcodec% == h264 if not %Acodec% == ac3 (echo Converting Video, Converting Audio
'C:\ffmpeg\bin\ffmpeg.exe -i "%~1" -map 0 -vcodec libx264 -scodec copy -acodec ac3 -b:a 640K '%%~n1.mkv')产
C:\Users\Desktop\to fix>if not mpeg4 == h264 if not mp3 == ac3 (
echo Converting Video, Converting Audio
'C:\ffmpeg\bin\ffmpeg.exe -i "S02E01.avi" -map 0 -vcodec libx264 -scodec copy -acodec ac3 -b:a 640K %~n1.mkv'
)而不是SO2EO1。如果我再给它添加%,它就会返回
C:\Users\Desktop\to fix>if not mpeg4 == h264 if not mp3 == ac3 (
echo Converting Video, Converting Audio
'C:\ffmpeg\bin\ffmpeg.exe -i "S02E01.avi" -map 0 -vcodec libx264 -scodec copy -acodec ac3 -b:a 640K %S02E01.mkv'
)所以,我不明白为什么一个变量工作,而另一个变量不事件,尽管它应该?就像在例句中一样,我曾经让这个脚本“%~nf”.mkv工作。我是一个脚本新手,所以如果你提供了一个答案,一个解释或者一个解释链接就很好了。
发布于 2017-06-27 07:37:11
%1是一个内部变量,所以
'%~n1.mkv'请参阅https://ss64.com/nt/syntax-args.html
%~n1将%1展开为没有文件扩展名C:\utils\MyFile的文件名,或者如果存在路径(没有尾随反斜杠),则为该路径中的最后一个文件夹。
https://stackoverflow.com/questions/44774500
复制相似问题