Batch file 处理批处理文件中的特殊字符
我有两种情况需要打开多个具有特殊字符的URL:Batch file 处理批处理文件中的特殊字符,batch-file,Batch File,我有两种情况需要打开多个具有特殊字符的URL:-和?。在第一个例子中,我尝试用^转义-的出现,但是\u sff#变量都会抛出错误 :Item_1 set _base=https://www.~.com/ & _mth1=2019-12 & _mth2=2020-01 & _week=2001 & _sff1=LNI & _sff2=NI & _sff3=NI-final & _sff4=NI-reduced start brave --in
-
和?
。在第一个例子中,我尝试用^
转义-
的出现,但是\u sff#
变量都会抛出错误
:Item_1
set _base=https://www.~.com/ & _mth1=2019-12 & _mth2=2020-01 & _week=2001 & _sff1=LNI & _sff2=NI & _sff3=NI-final & _sff4=NI-reduced
start brave --incognito %_base%%_mth1%/path-x/NW%_week%-%_sff1%.pdf & ping localhost -n 2 > nul
start brave --incognito %_base%%_mth1%/path-x/NW%_week%-%_sff2%.pdf & ping localhost -n 2 > nul
start brave --incognito %_base%%_mth1%/path-x/NW%_week%-%_sff3%.pdf & ping localhost -n 2 > nul
start brave --incognito %_base%%_mth1%/path-x/NW%_week%-%_sff4%.pdf & ping localhost -n 2 > nul
start brave --incognito %_base%%_mth2%/path-x/NW%_week%-%_sff1%.pdf & ping localhost -n 2 > nul
start brave --incognito %_base%%_mth2%/path-x/NW%_week%-%_sff2%.pdf & ping localhost -n 2 > nul
start brave --incognito %_base%%_mth2%/path-x/NW%_week%-%_sff3%.pdf & ping localhost -n 2 > nul
start brave --incognito %_base%%_mth2%/path-x/NW%_week%-%_sff4%.pdf
goto :EOF
在这种情况下,如何处理?
:Item_2
set _urls=https://www.~.com/?a=b
set _urls=%urls%;https://www.~.com/
call :Browser
goto :EOF
:Browser
for %%a in (%_urls%) do (
start browser --param %%a & ping localhost -n 2 > nul
)
exit /b
打开,运行
cmd/?
并阅读输出帮助。这里解释了包含空格或其中一个字符的文件名&()[]{}^=;!'+`~代码>必须用双引号括起来,才能将所有这些字符解释为文字字符。对于传递给命令或程序的任何其他参数字符串,如果字符串中可能包含文件名中不允许的字符|?:*
,则也是如此。从set“\u URL开始=https://www.~.com/?a=b“
,继续执行set”\u url=%url%;https://www.~.com/“
等。另请参见:在您的情况下,有必要将双引号URL分配给环境变量,即使用设置“\u URL=”https://www.~.com/?a=b“
和设置”\u URL=%URL%https://www.~.com/“”
。然后您可以使用for%%I in(%%u URL%)do start”浏览器--param%%I&%SystemRoot%\System32\ping.exe localhost-n 2>nul
阅读也是一个好主意。在第一批文件代码中,必须对所有环境变量使用set
,这些变量应在一行中定义,而不真正知道原因,即使用set”\u base=https://www.~.com/“&set”\u mth1=2019-12“&set”\u mth2=2020-01“&set”\u week=2001“&set”\u sff1=LNI“&set”\u sff2=NI“&set”\u sff3=NI final”&“\u sff4=NI reduced”
。下一行应该是start”“brave--incognito”%\u base%%\u mth1%/path-x/NW%\u week%-%\u sff1%.pdf“&%SystemRoot%\System32\ping.exe localhost-n 2>nul
,用于对任何PDF文件名进行100%有效的命令行。?
是一个通配符,可由识别,并且您无法转义它;-
没有什么特别的,但是&
是,所以使用^&
对其进行转义,或者用“
引用字符串。。。