레지스트리 문자열 값을 bat 파일에서 읽은 다음 읽은 값을 변수에 저장하려고합니다. 다음을 시도했습니다 :배치 파일에서 레지스트리 문자열 값을 읽는 방법
FOR %%a in ('REG QUERY HKLM\SOFTWARE\MathWorks\MATLAB\7.10 /v MATLABROOT') DO set MATLAB=%%a
echo %MATLAB%
그러나 작동하지 않습니다. 관심있는 단지 매우 값보다
레지스트리 문자열 값을 bat 파일에서 읽은 다음 읽은 값을 변수에 저장하려고합니다. 다음을 시도했습니다 :배치 파일에서 레지스트리 문자열 값을 읽는 방법
FOR %%a in ('REG QUERY HKLM\SOFTWARE\MathWorks\MATLAB\7.10 /v MATLABROOT') DO set MATLAB=%%a
echo %MATLAB%
그러나 작동하지 않습니다. 관심있는 단지 매우 값보다
당신이
FOR /F "skip=4 tokens=2,*" %%A IN ('REG.exe query "HKLM\software\foo\bar" /v "baz"') DO set "MATLABROOT=%%B"
과 같은 작업을 수행 할 수 있습니다, 당신은 토큰을 사용하는 것 = * 그리고 데이터가 어디에서 시작하는지 알 수 있도록 "REG_"을 찾는 %% A 구문 ...
정말 있으면 끔찍하게 깨질 것입니다. 공백이 경로에 있습니다. –
@CraigRinger : 2, *는 %% B가 나머지 줄로 바뀌는 것을 의미합니다. 더 큰 문제는 건너 뛰기 = 4 같은 것들입니다. 왜냐하면 그것은 OS 버전 등에 달려 있기 때문입니다. 배치 파일에서 이런 종류의 일을하는 것은 당신이 무엇을해도 무서운 일이 될 것입니다 ... – Anders
이상하지 않습니까? "레지스트리 값을 변수로 가져 오기"는 배치 파일에서 가장 일반적인 요구 사항 중 하나라고 생각할 수 있습니다. –
reg
인쇄 밖으로 방법이 더. 최대한 멀리 볼 수있는, for
에 skip=2
및 tokens=3
옵션을 제공하여 작동 할 수 있습니다.
예상보다 많은 공간이있는 경우 조금 더 정교해야합니다. 값 (이 경우 바즈)의 이름에 공백이 포함되지 않은 경우 이름이 동적 런타임에만 알려진 경우
가능한 복제본 [배치 스크립트 내에서 레지스트리 키 값을 얻으려면 어떻게해야합니까?] (http : /stackoverflow.com/questions/445167/how-can-i-get-the-value-of-a-registry-key-from-within-a-batch-script) – Pondlife