programing

박쥐 파일의 이스케이프 퍼센트

javaba 2021. 1. 15. 19:10
반응형

박쥐 파일의 이스케이프 퍼센트


배치 파일을 사용하여 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

다른 연결로 작업하기 위해 통합되었을 때 동일한 스크립트가 작동하지 않는 이유는 무엇입니까?


2 %% 는 1 % 와 같습니다 . 맞습니다 (하지만 스크립트에서만, cmd에서 직접), 이스케이프 연산자 ^ 를 사용할 필요가 없습니다 .

그러나 당신은 침략 연산자 )를 놓치고 있습니다. 그게 바로 문제 야; 명령에서 )찾으면 IF가 닫힙니다 .

이것을 사용하십시오 :

rasdial sl employee1 K%%%%Pxev3=^)g:{#Swc9

참조 URL : https://stackoverflow.com/questions/13551829/escape-percent-in-bat-file

반응형