Я пытался написать vpn dialer/disconnector, используя командный файл, но застрял. После некоторого расследования выяснилось, что наличие% в пароле плохо работает.
Вот код
@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
В приведенном выше script я пытаюсь избежать% используя% (т.е. %%, ссылку из здесь), но bat script дает g: {# Swc9 был неожиданным в настоящее время..
Чтобы корень стал причиной, я попробовал удвоить %% (escape%) в другом командном файле и работал
@echo OFF
rasdial sl employee1 K%%Pxev3=)g:{#Swc9
Интересно, почему тот же script, когда он интегрирован для работы с разными соединениями, не работает...
Любая помощь?