我试图使用批处理文件编写 VPN 拨号器/断开器,但我被卡住了。经过一番调查,我发现%
密码中的存在打得不好。
这是代码
@echo OFF
SET SWITCHPARSE1=%1
SET SWITCHPARSE2=%2
REM echo %SWITCHPARSE1%
SHIFT
SHIFT
IF "SWITCHPARSE1" == "" goto Usage
IF "SWITCHPARSE1" == "/?" goto Usage
IF "SWITCHPARSE2" == "" goto Usage
IF "SWITCHPARSE2" == "/?" goto Usage
IF "%SWITCHPARSE1%" == "sl" (
IF "%SWITCHPARSE2%" == "conn" (
echo "inside sl conn"
rasdial sl employee1 K%%Pxev3=)g:{#Swc9
goto end
) ELSE IF "%SWITCHPARSE2%" == "disconn" (
rasdial sl /disconnect
goto end
) ELSE (
goto Usage
)
) ELSE IF "%SWITCHPARSE1%" == "off" (
IF "%SWITCHPARSE2%" == "conn" (
rasdial Office employee1 office123
goto end
) ELSE IF "%SWITCHPARSE2%" == "disconn" (
rasdial Office /disconnect
goto end
) ELSE (
goto Usage
)
) ELSE (
goto Usage
)
:Usage
echo "Usage is vpnconn.bat /[sl|off] /[conn|disconn]"
:end
在上面的脚本中,我试图%
使用%
(即%%
,从这里引用)进行转义,但是 bat 脚本给出的g:{#Swc9 在此时是出乎意料的。.
为了进一步根本原因,我尝试在不同的批处理文件中加倍%%
(转义%
),它起作用了:
@echo OFF
rasdial sl employee1 K%%Pxev3=)g:{#Swc9
为什么相同的脚本在集成以处理不同的连接时不起作用?