반응형
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의 값을 저장함.
반응형
'OS > Windows' 카테고리의 다른 글
batch script - START와 CALL의 차이점 (0) | 2022.04.07 |
---|---|
batch script - 환경변수 문자열 안의 환경변수가 있는 경우 처리하는 방법 (0) | 2022.04.07 |
batch script - Registry value 값 확인 결과 파일에 저장 (0) | 2022.04.07 |
batch script - error message 출력안하는 설정 (0) | 2022.04.07 |
batch script - Registry value 값 확인 결과를 File에 저장 (0) | 2022.04.07 |