在bat文件中跳出百分比
我正在尝试使用batch file编写一个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
在上面的脚本中,我试图使用%(即%%,从这里引用)转义%,但蝙蝠脚本给g:{#Swc9在这个时候是意外的。 。
为了进一步深入根源,我尝试了在另一个batch file中使用双%%(escape%),它工作
@echo OFF rasdial sl employee1 K%%Pxev3=)g:{#Swc9
想知道为什么当集成到不同的连接工作相同的脚本不起作用…
任何帮助?
两个%%等于一个% ,这是正确的(但只在一个脚本中,而不是直接在cmd),不需要使用景观运算符^ 。
但是你错过了agrupation操作符) ,那就是这个问题,IF在你的命令中find的时候closures) 。
用这个:
rasdial sl employee1 K%%%%Pxev3=^)g:{#Swc9
我希望这对你有帮助。
PS:对不起,我的英语