我试图使用以下命令在我的类路径中连接变量,但是当文件夹名称包含空格时它不起作用:
call concat : %variable%
Run Code Online (Sandbox Code Playgroud)
哪里 %variable% ={folder name containing space}
我试过把引号:
call concat : "%variable%"
Run Code Online (Sandbox Code Playgroud)
但是这会在我的类路径中添加2个双引号,如下所示:
""folder name containing space""
:concat
set CLASSPATH=%CLASSPATH%;"%1"
Run Code Online (Sandbox Code Playgroud)
ogg*_*ter 12
在整个SET声明中加上引号:
SET "FOO=AB C"
SET "BAR=%FOO%D EF"
echo %BAR%
Run Code Online (Sandbox Code Playgroud)
输出:
AB CD EF
Run Code Online (Sandbox Code Playgroud)
对于带空格的字符串,请勿使用其他双引号.该参数%~删除字符串周围的所有双引号对:
@echo off &setlocal
set "Variable="my var""
echo Variable: %Variable%
call :concat %Variable%
goto :eof
:concat
echo concat %%1: %1
set "NewVar=%~1"
echo concat NewVar: %newvar%
goto :eof
endlocal
Run Code Online (Sandbox Code Playgroud)
输出是:
Variable: "my var"
concat %1: "my var"
concat NewVar: my var
Run Code Online (Sandbox Code Playgroud)
如果在字符串周围添加其他双引号,则会发生以下情况:
@echo off &setlocal
set "Variable="my var""
echo Variable: %Variable%
call :concat "%Variable%"
goto :eof
:concat
echo concat %%1: %1
set "NewVar=%~1"
echo concat NewVar: %newvar%
goto :eof
endlocal
Run Code Online (Sandbox Code Playgroud)
输出中断:
Variable: "my var"
concat %1: ""my
concat NewVar: "my
Run Code Online (Sandbox Code Playgroud)