2017-09-27 101 views
2

배치 파일,특히 내가 레지스트리 키의 값의 존재 여부를 확인하기 위해 등록 쿼리 명령을 사용하는 간단한 배치 파일을 만들려고 해요

HKCU \ 소프트웨어 \ 마이크로 소프트를 통해 레지스트리 키 값을 쿼리 \ Windows \ CurrentVersion \ Internet 설정 ProxyEnable 키입니다. 내가이 명령을 실행하면

는 :

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /f 0x1 /d 

이 반환 다음 : 내/F 검색 필드를 수락하지 않다면로 입력 한 내가 명령을 예상하는대로

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings 
    ProxyEnable REG_DWORD 0x0 

그것은이다 해당 키에 대한 내 값이 0x0이므로 아무 결과도 반환하지 않습니다.

"0x1"및 다른 조합을 따옴표로 묶어 사용했지만 별다른 문제가 없는지 궁금합니다.

미리 감사드립니다.

+0

/F는 검색을 의미합니까? – Squashman

+0

@Squashman,'Reg Query /? ','/ f 검색 할 데이터 나 패턴을 지정한다. 문자열에 공백이 있으면 큰 따옴표를 사용하십시오. 기본값은 "*"입니다. 단지 키를 읽는 중일뿐입니다. 데이터를 변수로 설정하고 If % 변수로 검사 할 수 있습니까? Gtr 0comparison – Compo

+2

이것이 저에게 효과적이었습니다 : 'reg "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings"/ f 1/t REG_DWORD | find/I "ProxyEnable"' – Squashman

답변

2

만 프록시를 활성화하면에 토글 알고 싶은 것으로 나타났습니다, 당신은 대신 사용할 수 있습니다 :

@Echo Off 

Set "RR=HKCU" 
Set "RK=Software\Microsoft\Windows\CurrentVersion\Internet Settings" 
Set "RV=ProxyEnable" 

For /F "Skip=1 Tokens=2*" %%A In ('Reg Query "%RR%\%RK%" /V "%RV%" 2^>Nul' 
) Do If %%~B Gtr 0 Echo(%%B 

Pause 

당신이 인스턴스가 그것을 전환하기를 원하는 경우는 전원을 껐다 경우 이런 식으로 변경 :

@Echo Off 

Set "RR=HKCU" 
Set "RK=Software\Microsoft\Windows\CurrentVersion\Internet Settings" 
Set "RV=ProxyEnable" 

For /F "Skip=1 Tokens=2*" %%A In ('Reg Query "%RR%\%RK%" /V "%RV%" 2^>Nul' 
) Do If %%~B Equ 0 Reg Add "%RR%\%RK%" /V "%RV%" /T REG_DWORD /D 0x1 /F>Nul 

을 기술적으로 방금이 그렇게 실행할 수 있지만 :

@Echo Off 

Set "RR=HKCU" 
Set "RK=Software\Microsoft\Windows\CurrentVersion\Internet Settings" 
Set "RV=ProxyEnable" 

Reg Add "%RR%\%RK%" /V "%RV%" /T REG_DWORD /D 0x1 /F>Nul 

편집

다음 EnableHttp1_1 REG_DWORD 0x0Find에 전송 된 것이기 때문에 처음 방법 Squashman에 의해 제안 및 zett42 향상, 를 사용하여 확인하려면 : 당신은 아이디어를 얻을 않았다

@Echo Off 

Set "RR=HKCU" 
Set "RK=Software\Microsoft\Windows\CurrentVersion\Internet Settings" 
Set "RV=ProxyEnable" 

Reg Query "%RR%\%RK%" /F 1 /E /T REG_DWORD|Find /I "%RV%">Nul 2>&1||(
    Reg Add "%RR%\%RK%" /V "%RV%" /T REG_DWORD /D 0x1 /F>Nul)