我正在尝试创建一个脚本来运行一个程序,该程序接收文件名作为参数。我遇到的问题是,如果文件名中包含特殊字符,程序将无效。
我发现this帖子对我有所帮助。通过对该脚本进行一些修改,我可以将该程序与包含[
和]
的文件名一起使用。
但是,仍有一些其他特殊字符导致程序无法运行。是否可以为所有特殊字符创建批处理?如果没有,我至少需要能够解析[
和]
,以及'
。
这就是我现在所做的工作。我怎样才能至少为此添加'
?
if not exist "mp4\" mkdir mp4
setlocal disableDelayedExpansion
for %%f in (*.mkv) do (
set _a=%%~nf
set _c=%%f
setlocal enableDelayedExpansion
set _b=!_a:[=\[!
set _name=!_b:]=\]!
set _d=!_c:[=\[!
set _fullname=!_d:]=\]!
"SOMEPATH\ffmpeg\bin\ffmpeg.exe" -i "%%f" -vf subtitles="!_name!.mkv:si=1" -c:v h264_qsv -c:a copy -map 0:v:0 -map 0:a:1 -q:v 6 -look_ahead 0 "mp4/%%~nf.mp4"
endlocal
)
endlocal
pause
如果你能解释一些很酷的东西背后的原因。我对脚本编程了解不多,但我想了解这批文件中发生的事情......
哦,here是在此程序中转义字符的文档。