윈 도 우 배치파일 질문드립니다..
2020.04.27 16:52
안녕하세요. 문의드릴것이 있어 글남기게 되었습니다.
텍스트 변경을 하는 배치파일을 하나 만들어야 하는데요.
먼저 설명을 좀 드리겟습니다. 궁극적인 목표는
---monitor.txt---
[Monitor0]
Name=\\.\DISPLAY1
MonitorID=MONITOR\DELA021\{xxxxx-xxxx-xxxx-xxxx-xxxxx}\0001
BitsPerPixel=32
Width=1600
Height=1200
DisplayFlags=0
DisplayFrequency=60
DisplayOrientation=0
PositionX=1440
PositionY=0
이런 텍스트가 문서가 있을시 {xxxxx-xxxx-xxxx-xxxx-xxxxx} 에 들어가있는 값을 제가 원하는 값으로 배치파일을 실행시켜 바꾸는것입니다.
{xxxxx-xxxx-xxxx-xxxx-xxxxx} 의 값은 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Settings\video 이 하위키 안에 들어있으며 현재
@echo off
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Settings\video" /s | findstr "{" > test.txt
for /f "tokens=2 delims={}" %%a in (c:\test.txt) do set test=%%a
echo %test%
배치파일을 만들어 test 라는 변수에 해당값을 추출해내는것 까지는 해놓았습니다.
이제 부터 막혀있는 상태인데요.
test라는 변수의 값을 어떤 배치파일 명령을 써서 monitor.txt 파일안의 MonitorID=MONITOR\DELA021\{xxxxx-xxxx-xxxx-xxxx-xxxxx}\0001 의
{xxxxx-xxxx-xxxx-xxxx-xxxxx} 값과 치환을 할 수 있을지요..
아무리 머리를 굴려도.. .배치파일로 제 실력상 힘들어서 문의 남깁니다.
회원여러분들의 고견 부탁드리겟습니다..
댓글 [5]
-
내꼬 2020.04.27 17:06 -
칠월일일 2020.04.27 17:08
감사합니다. 해당 레지스트리값 쿼리 했을때의 test.txt 생성파일 첨부하겠습니다.
-
DarknessAngel 2020.04.27 18:39
구시대 유물에 너무 많은걸 바라지말고, 그냥 파워셀용으로 짜시던지, 바이너리 동봉해서 리눅스 방식으로 짜세요
-
arim 2020.04.27 19:09
@echo off
pushd %~dp0
setlocal enabledelayedexpansion
for /f "delims=" %%i in (monitor.txt) do (
set "line=%%i"
set "line=!line:{xxxxx-xxxx-xxxx-xxxx-xxxxx}={xxxxx-xxxx-xxxx-xxxx-xxxxx}!"
if "!line!"==" " echo.>>newtest.txt
echo.!line!>>newmonitor.txt
)
exit
set "line=!line:{xxxxx-xxxx-xxxx-xxxx-xxxxx}={xxxxx-xxxx-xxxx-xxxx-xxxxx}!"
기본값 원하는 값
텍스트 문서와 배치파일을 같은 폴더에서....테스트는 하지 안았습니다. -
칠월일일 2020.04.28 17:21
감사합니다 짜주신 배치파일 내일 테스트 해보겠습니다 감사합니다
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Settings\video
실제 reg값을 파일로 올려 주세요/ 확인해 보겠습니다