在批处理文件中更改输出文件名

在批处理文件中更改输出文件名

抱歉,标题不太具描述性,但我无法想到更好的标题。

我使用这个脚本来拖放视频+音频文件,并将它们与ffmpeg结合起来。

ffmpeg -i "%~1" -i "%~2" -c copy "C:\New Folder\%~n1".mp4

效果很好,但输入和随后输出的文件在扩展名前都有“.raw”结尾。有没有简单的方法可以删除 %~n1 的最后 4 个字符或将“.raw”替换为“”?我想在使用 ffmpeg 将字符串指定为文件名之前对其进行操作,我不想输出以 .raw.mp4 结尾的文件,然后重命名它。

答案1

有没有简单的方法删除的最后 4 个字符%~n1

您需要使用子字符串运算符。尝试以下cmd脚本:

@echo off
rem avoid polluting global environment space
setlocal
set "_file=%~n1"
rem strip last 4 characters from _file
set "_name=%_file~0,-4%"
rem run ffmpeg with new name
ffmpeg -i "%~1" -i "%~2" -c copy "C:\New Folder\%_name%".mp4
endlocal

进一步阅读

答案2

这是有效的答案

set filename=%~n1
set filename=%filename:.raw=%
ffmpeg -i "%~1" -i "%~2" -c copy "%filename%.mp4"
pause

相关内容