バッチ ファイルを使用して 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
異なる接続で動作するように統合されたときに同じスクリプトが機能しないのはなぜですか?