2009-11-17 3 views
0

변수를 레지스트리 경로로 설정하려고합니다. 그런 다음 레지스트리를 쿼리하고 변수와 일치 시키려고 시도합니다. 둘 다 동일하면 goto execute를 실행합니다. 그러나 임 오류가 발생하고 보이는 어떤 이유로이 명령을 그냥 비교 문자열이 무슨 일을하는지변수에 명령을 저장하고 배치 파일에서 일치 시키려고 시도했습니다.

set var=HKEY_LOCAL_MACHINE\System\x 

IF reg query==var 
GOTO EXecute 

답변

2

몇 가지 문제가있다. 커맨드 인터프리터는 reg query이 명령이라는 것을 어떻게 알 수 있습니까? 사실 외에도 어쨌든 많은 유용한 정보가 제공되지는 않습니다.

여기서 수행해야 할 작업은 프로그램을 실행하고 출력을 캡처 한 다음 비교하는 것입니다. 당신은 for /f 명령을 사용하여이 작업을 수행 할 수 있습니다 : 당신이 바로 그걸 얻기 위해 몇 가지 작업이 필요하므로

for /f %%x in ('reg query ...') do ... 

그러나 reg의 출력은, 기계 판독 사람이 읽을 수 없습니다. 기본적으로 해당 for 문과 헤더 행의 빈 줄은 무시해야합니다. 그러면 관심있는 실제 값을 찾아야합니다. 이것은 꽤 못 생길 것입니다. 명령 줄에서 직접 입력 한 경우

0
for /f %%a in ('reg query ...') do if "%var%" == "%%a" goto Execute 
+0

그것은 A는 두 배로 % 배치 파일 내에서 사용하기위한 것입니다이 시간 – alice7

+0

에서 예기치 않은 %% 오류를주고있다, 그들은 두 배가되어서는 안된다. – brianary

관련 문제