이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

OS/Windows

batch-script Registry value 값 확인 결과 변수에 저장하는 방법

이쿠우우 2022. 4. 7. 20:40
반응형

 

 

Registry value 값 확인 결과 변수에 저장하는 방법 1 (파일 이용)

 
[원하는 상황]
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp 경로의 InstallPath 값을 var라는 변수에 저장하고 싶음

 
[temp.bat 파일 생성]
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp" /s | find /I "InstallPath" >> test.log
 
for /f "tokens=3" %%a in ('type test.log') DO set var=%%a
 
echo %var%
 
[bat script 과정 정리]
registry 확인 결과를 test.log 파일에 저장
test.log 파일에는 결과가 다음과 같이 저장되어 있음

 
3개의 문자열로 저장되어 있어서 해당 문자열 중 3번째 값이 원하는 정보 임으로
"tokens=3" 설정으로 해당 문자열만 가져와서 var라는 변수에 저장함.
 
[결과]

 


 
 
Registry value 값 확인 결과 변수에 저장하는 방법 2 (변수에 바로 저장)
 
[원하는 상황]
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp 경로의 InstallPath 값을 var라는 변수에 저장하고 싶음

 
 
[temp.bat 파일 생성]
@echo off
 
set var=""
 
for /f "delims=" %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp /f "InstallPath" /s 2^>nul ^| find /I "InstallPath"') do set "var=%%a"
 
for %%a in (%var%) DO (set var=%%a)
 
echo %var%
 
@echo on
 
[ "delims=" ]
문자열을 나누는 기호 문자, 생략시 공백(스페이스,탭)으로 나눔. 
in()에 해당하는 결과를 임시 저장하기 위해 사용
 
[ 2^>nul ^|  ]
in 내부에서 ">" 또는 "|" 를 사용 시 앞에 ^를 붙여줘야함
붙이지 않으면 아래와 같은 오류 발생
은(는) 예상되지 않았습니다.

 
 
[결과]
첫 번째 for문에서 var 변수에 registry scan 결과를 저장함.
두 번째 for문에서 얻고자 하는 3번째 token의 값을 저장함.

반응형