Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 处理批处理文件中的特殊字符_Batch File - Fatal编程技术网

Batch file 处理批处理文件中的特殊字符

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

我有两种情况需要打开多个具有特殊字符的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 --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%有效的命令行。
是一个通配符,可由
识别,并且您无法转义它;
-
没有什么特别的,但是
&
是,所以使用
^&
对其进行转义,或者用
引用字符串。。。