기 타 (배치파일작성) 텍스트파일 내부의 문자열 치환이 어렵습니다.
2017.01.21 13:18
배치파일 작성 질문입니다.
배치파일을 실행하여 텍스트파일 안의 문자열을 다른 문자열로 수정 저장하고 싶습니다.
<수정하고 싶은 원본 파일 내부: fschedset.ini>
fsDbPathStart=1
fsDbPath2=D:\fsched.mdb
fsDbPath3=
(아래에는 변경하고 싶지 않은 문자열이 있습니다.)
<배치파일을 실행하여 수정이 완료되었을 때의 모습: fschedset.ini>
fsDbPathStart=3
fsDbPath2=D:\fsched.mdb
fsDbPath3=D:\fsched.mdb
(아래에는 변경하고 싶지 않은 문자열이 있습니다.)
---------------------------
여기 저기 검색해서 짜깁기로 이렇게 작성을 해보았는데요, 원하는대로 잘 되지가 않습니다.
변수 지정한 부분에 등호가 들어가있어서 그런것 같은데, 어떻게 하면 좋을지 모르겠습니다.
<작성한 배치파일>
@echo off
setlocal enableextensions disabledelayedexpansion
set "search1=fsDbPathStart=1"
set "search2=fsDbPath3="
set "replace1=fsDbPathStart=3"
set "replace2=fsDbPath3=D:\fsched.mdb"
set "textFile=fschedset.ini"
for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
set "line=%%i"
setlocal enabledelayedexpansion
set "line=!line:%search1%=%replace1%!"
set "line=!line:%search2%=%replace2%!"
>>"%textFile%" echo(!line!
endlocal
)
<배치파일을 실행했을 때 수정된 파일 내부: fschedset.ini>
1=fsDbPathStart=3=1
fsDbPath2=D:\fsched.mdb
=fsDbPath3=D:\fsched.mdb=
fontsize일별=10
fontsize주별=10
fontsize월별=9
수정하고 싶은 원본과 작성중인 배치파일을 첨부하였습니다. 도움 부탁드립니다~~
댓글 [12]
-
메리아 2017.01.21 13:41 -
입교 2017.01.21 13:49
링크에 vbs 정리가 잘 되어있긴 한데요, 맨땅에 헤딩이다보니 너무 어려워서요. ㅠ_ㅠ
-
메리아 2017.01.21 13:52 -
-
입교 2017.01.21 13:58
도움에 감사드립니다. 도전해보겠습니닷 *_*/
-
suk 2017.01.21 14:55
-
입교 2017.01.21 15:46
헛.. 너무 감사드립니다. 이렇게 직접 배치파일을 작성해주실줄은... (꾸벅)
배치파일로 vbs를 만들고, vbs로 ini파일을 수정하는 것 같네요.
최대한 이해해서 활용해보겠습니다. 다시 한 번 감사드립니다.
-
입교 2017.01.21 16:53
메리아님과 suk님께서 도움을 주신 덕분에 원하는대로 해결되었습니다.
아래는 suk님의 cmd배치파일을 바탕으로 만들어본 vbs 파일내용입니다. 원하는대로 잘 작동되네요. ㅎㅎ
Const ForReading = 1
Const ForWriting = 2strFileName = "fschedset.ini"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)strText = objFile.ReadAll
objFile.ClosestrNewText = Replace(strText, "fsDbPathStart=1", "fsDbPathStart=3")
strNewText1 = Replace(strNewText, "fsDbPath3=", "fsDbPath3=D:\fsched.mdb")Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.WriteLine strNewText1
objFile.Close두 분께 다시 한 번 감사드립니다. ^^
-
메리아 2017.01.21 17:17 -
-
입교 2017.01.21 18:03
지적해주신 덕분에 문제점을 알게 되었습니다.
말씀하신대로 줄이 계속 늘어나기도 하고,
vbs파일을 반복실행했더니
이런 식으로 fsDbPath3=D:\fsched.mdbD:\fsched.mdbD:\fsched.mdbD:\fsched.mdb
원치 않게 경로가 반복 입력이 되어버리네요.
메리아님께서 주신 링크는 스크립트가 길어서 두려움에 짧은 것만 선택했는데,
다시 도전해봐야겠습니다. ㅠ_ㅠ
-
입교 2017.01.21 18:42
아... 이제서야 메리아님의 첫 번째 댓글을 이해 했습니다.
글을 잘 읽어본다고 했는데도 이해를 못하고 엉뚱한 짓을 했네요.
ReadINI와 WriteINI는 엔진이니 그대로 놔둬도 되고, 실제로 변경해야 할 부분은 Script였는데 말입니다.
어제부터 cmd로 텍스트 편집하는 것을 알아보던터라
엔진에 분명 저에게 적용되어야 할 변수가 있을 거라고 생각하고 찾아헤맸지 뭡니까. ㅎㅎ
그렇게 한참을 들여다보다가 너무 길어서 suk님의 스크립트를 활용했는데요,
길게 돌아왔지만 suk님 코드 가지고 vbs 알아본 것도 좋았습니다. ㅎㅎ
아무튼 이제 정말 제가 원하는 대로 되었습니다. ㅎㅎ
기념으로 완성된 vbs파일을 첨부합니다. 그리고 메리아님 감사합니다. ^^
-
DarknessAngel 2017.01.21 17:56
가장 쉬운 방법은 gnu의 힘을 빌리는겁니다
윈도용 static busybox하나면 이것저것 쓸모있습니다
리눅스에서 택스트의 문자열 추출, 교체등을 하는 방법이라면 검색하면 썩어넘칠만큼 나옵니다
-
오호라7 2017.01.21 22:21
자료실에 관련 프로그램 올려놨습니다.
https://windowsforum.kr/index.php?mid=data&document_srl=8225490
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
67357 | 윈 도 우| 윈도우10 / iptime 공유기 외부 WOL 부팅문제. [4] | 투명스티커 | 846 | 01-21 |
67356 | 윈 도 우| 윈도우탐색기에서 미리보기가 안되요..... [2] | 카니발 | 1010 | 01-21 |
» | 기 타| (배치파일작성) 텍스트파일 내부의 문자열 치환이 어렵습니다. [12] | 입교 | 769 | 01-21 |
67354 | 윈 도 우| 드래그 드롭이 안될 때 [1] | 雪耳 | 1580 | 01-21 |
67353 | 소프트웨어| 한글 비밀번호 풀고 싶어요. [3] | 파도 | 1398 | 01-21 |
67352 | 윈 도 우| windows10 64bit UEFI 설치하려고 하는데요. [5] | 씻으면이정 | 821 | 01-21 |
67351 | 기 타| 크롬 문의 | anko | 203 | 01-21 |
67350 | 윈 도 우| 윈도 8.1 마우스 설정 초기화하려면? | 나는나다 | 525 | 01-21 |
67349 | 소프트웨어| 이런 경우, 바이러스 검사에 한계가 있는 거 아닐까요? [3] | 윈도면도 | 375 | 01-21 |
67348 | 윈 도 우| sysprep봉인작업후 imagex이용 install.wim생성안됨 [8] | silence | 598 | 01-21 |
67347 | 윈 도 우| Windows 10 App 재사용 문의 | 雪耳 | 240 | 01-20 |
67346 | 기 타| 네이버에서 창이 바뀔때마다 경고 창이 뜹니다. [3] | 밤톨이 | 343 | 01-20 |
67345 | 소프트웨어| 랜섬웨어,바이러스 잘 잡는 무료백신 없을까요? [2] | ♡오르골 | 882 | 01-20 |
67344 | 소프트웨어| 바이두 서버오류 질문입니다. [3] | 카야 | 888 | 01-20 |
67343 | 윈 도 우| 파일을 완전삭제 하는 방법이 있는지요?? [2] | 평화 | 554 | 01-20 |
67342 | 윈 도 우| 주파수 범위 초과 [2] | 아이모 | 615 | 01-20 |
67341 | 윈 도 우| inisafe sfilter때문에 익스충돌 | 이탈 | 586 | 01-20 |
67340 | 윈 도 우| 윈도우10의 연결프로그램 리셋 문제. | 외눈박이 | 1511 | 01-20 |
67339 | 윈 도 우| 윈도우7 시스템 복구 디스크 파일 [2] | 메가도스 | 846 | 01-20 |
67338 | 기 타| [조공]회사내 건물들어오자마자 보이는 TV에 무엇을 띄워놓... [2] | 스맥현스 | 532 | 01-20 |
-