我试图使用批处理文件编写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
Run Code Online (Sandbox Code Playgroud)
在上面的脚本中,我试图逃避%使用%(即%%从这里引用),但是bat脚本给出了g:{#Swc9此时出乎意料..
为了进一步发生根本原因,我尝试在另一个批处理文件中加倍%%(转义%),并且它有效:
@echo OFF
rasdial sl employee1 K%%Pxev3=)g:{#Swc9
Run Code Online (Sandbox Code Playgroud)
为什么集成到不同连接的相同脚本不起作用?
Ele*_*ios 72
两%%等于一%.这是正确的(但只在脚本中,而不是直接在cmd中),不需要使用转义运算符^.
但你错过了agrupation运营商).那就是问题所在; 中频当它发现关闭)在您的命令.
用这个:
rasdial sl employee1 K%%%%Pxev3=^)g:{#Swc9
Run Code Online (Sandbox Code Playgroud)