윈도우즈 레지스트리 값을 읽어서 처리하고 싶은 경우가 있다. 이 때 사용하는 명령어가 'reg query' 다.
REG QUERY KeyName [/v [ValueName] | /ve] [/s]
[/f Data [/k] [/d] [/c] [/e]] [/t Type] [/z] [/se Separator]
[/reg:32 | /reg:64]
KeyName [\\Machine\]FullKey
Machine - 원격 컴퓨터 이름. 생략하면 기본값이
현재 컴퓨터가 됩니다. 원격 컴퓨터에서는 HKLM과 HKU를
사용할 수 있습니다.
FullKey - ROOTKEY\SubKey 이름 형식
ROOTKEY - [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey - 선택한 ROOTKEY 아래에 있는
레지스트리 키의 전체 이름
/v 특정 레지스트리 키 값을 쿼리합니다.
생략되면 키의 모든 값을 쿼리합니다.
이 스위치로의 인수는 /f 스위치와 함께 지정되면
옵션일 수 있습니다. 이것은 값 이름만 찾기 위한 것입니다.
/ve 기본값 또는 비어 있는 값 이름(기본값)을 쿼리합니다.
/s 모든 하위 키와 값을 반복적으로 쿼리합니다(dir /s의 경우처럼)
/se REG_MULTI_SZ에 대한 데이터 문자열에서 구분 기호(1문자의 길이만)를
지정합니다. 기본값으로 "\0"을 구분 기호로 지정합니다.
/f 검색할 문자열을 지정합니다.
문자열에 빈 칸이 들어 있으면 큰 따옴표로 묶습니다. 기본값은 "*"입니다.
/k 키 이름만 검색합니다.
/d 검색할 데이터를 지정합니다.
/c 검색할 때 대/소문자를 구분합니다.
기본적으로, 검색할 때 대/소문자를 구분하지 않습니다.
/e 정확하게 일치하는 것만 반환합니다.
기본적으로, 일치하는 것 모두를 반환합니다.
/t 레지스트리 값 데이터 형식을 지정합니다.
유효한 형식:
REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ,
REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE
기본값은 모든 유형입니다.
/z 세부 정보: 값 이름의 유형에 대응하는 숫자 값을 보여 줍니다.
/reg:32 32비트 레지스트리 보기를 사용하여 키에 액세스해야 함을 지정합니다.
/reg:64 64비트 레지스트리 보기를 사용하여 키에 액세스해야 함을 지정합니다.
레지스트리에서 읽은 값을 파싱해서 처리하려면 for 문을 사용하면 된다.
for /f "tokens=3" %%a in ('reg query "HKCU\Control Panel\Colors" /V Background ^|findstr /ri "REG_SZ"') do echo %%a
출처 : https://superuser.com/questions/995591/how-to-get-a-registry-value-and-set-into-a-variable-in-batch