윈 도 우 배치파일 문자열 치환관련
2017.04.26 21:07
다수의 텍스트파일 예를들어 1.txt ~ 100.txt 가 있는데요. 내용은 다르지만, 맨 마지막
G50
%
는 같습니다. (예문 아래참조..) 배치파일로 1~100.txt 파일 전부
G50 윗줄에 한줄 추가하고, M00 을 넣고 싶은데요. 배치파일로 가능 할까요?
염치없지만 가능하다면 배치파일로 작성좀 부탁드립니다.
-----예문 변경전-----
%
O001 (1)
(*MODEL COMA557 58I )
(*SHEET 3048.0 1219.0 1.0 T)
(MAT HR )
(*CLAMPS 150.0 1000.0)
(*T255 RE 80 5 90 )
G92X1830. Y1270.
생략
G70X1524.Y100.
G50
%
-------------------끝
-----예문 변경후-----
%
O001 (1)
(*MODEL COMA557 58I )
(*SHEET 3048.0 1219.0 1.0 T)
(MAT HR )
(*CLAMPS 150.0 1000.0)
(*T255 RE 80 5 90 )
G92X1830. Y1270.
생략
G70X1524.Y100.
M00 <-요부분 추가 (G50 윗줄에)
G50
%
-------------------끝
댓글 [12]
-
DarknessAngel 2017.04.27 05:46
-
차일드 2017.04.27 07:30 무슨 댓글이 배치파일 구현 방법을 물어봤는데
답은 제시 못할 망정 구형이니 컴파일된 다른 툴을 쓰라는 엉뚱한 댓글을 씁니까?
그리 좋으면 질문글에 대한 프로그램 작성해서 올려 보시지요?
그 좋은 컴파일된 바이너리 파일 첨부해서 답을 주던가
파워셀로 간단하게 작성해서 답을 주던가
취지에 맞는 댓글좀 다세요
-
메리아 2017.04.27 13:25
이번 건 다크니스엔젤님이 맞는말 하셨는데,
왜 난리죠?
답을 제시안하고 엉뚱한 말을 한다?
이건 답이 "사실상 없는 수준"이기 때문입니다.
진짜 "노답"이기 때문이죠.
저도 배치파일 많이 다루고 하지만,
문자열 처리 문제는 진짜 골 때립니다.
파워쉘은 모르겠고, 컴파일도 귀찮으니,
그나마 배치파일처럼 스크립트 형태의 대안인
vbscript를 자주 애용하죠.
윈도우에서 vbs가 안되는 건 없으니까요.
메모장만 있어도 편집이 쉽고, 컴파일도 불필요하구요.
해보면 압니다.
복잡한걸 배치파일 문법으로 하려고 든게
개삽질을 하는 거라는 걸요.
그리고 답변자들이 바이너리나 파워쉘 작성해서 갖다바쳐야하는 호구인가요?
여긴 AS센터도 아니고, 모두 자발적으로 지식 나눔하는 곳입니다.
왜 당연한 듯이 결과물을 요구하는지 모르겠네요?
그렇잖아도 당연한듯이 결과물을 요구하는 인간들 때문에 어처구니 없어서,
일부러 상세하게 안쓰는데(사실 귀찮기도 하고),
다시 한번 결심을 다잡게 해줘서 고맙군요.
-
DarknessAngel 2017.04.27 14:55
https://sourceforge.net/projects/gnuwin32
구글링하면 1초도 안 되서 (젤 위) 구해집니다 (여기가 콜센터도 아닌데, 이렇게 쉽게 구하는걸 일일히 떠먹여드려야합니까)
grep/sed등을 쓰다가 윈도 구형 cmd/bat로 문자열 다루면 진절머리나서 작업하기 싫어집니다 (스크립트 폴더에 파일 몇개만 넣어두면 썩어넘치는 리눅스용 예제 그대로 이용 가능합니다)
저렇게 문자열 대체하는것도 grep으로 아주 쉽게 가능합니다
참고로 프로그램 설치 수고를 무시하면 perl이 문자열 다루는것에선 최강입니다 (오죽하면 언어는 듣보잡수준이 되어도 정규식은 대부분의 언어가 지원할 수준입니다)
저런것들에 비하면 cmd/bat가 지원하는 문자열 처리는 애 장난입니다
-
딕맨 2017.04.27 13:42
CMD 나 Batch 에서 TXT안의 문자열을 찾아 삽입하는 명령어는 있는지 잘 모르겠군요.
아마 없지 않나 생각됩니다.
이렇게 두 줄 이상을 찾아 바꾸는 것은 Regex를 지원하는 에디터(Notepad++나 EditPlus 등)에서 일괄 치환하는 방법을 쓰시는 것이 효율적이라 생각됩니다.
아니면 Search and Replace 나 find and replace 같은 프로그램이 있었던 것 같습니다.
감사합니다.
-
딕맨 2017.04.27 14:27
Notepad++에서 치환입니다.
참고하십시오.
-
티본 2017.04.27 18:11
네. 참고 하겠습니다. 감사합니다.
-
티본 2017.04.27 18:10
메리아, DarknessAngel님
모르는게 죄라면 할 말 없습니다만, "염치없지만 가능하다면"
이라고 의견을 물어보고, 정중히 부탁을 드린겁니다.
안되면 그만인것을 굳이 긁어부스럼을 만드시네요. "인간들이니. 떠먹여줘야하느니.. 비하를 하십니까?
그런 말씀하신 분들이야말로 수준이하의 분들이신거 같군요..
-
DarknessAngel 2017.04.30 04:47
원래 언제 돌아올지(애초에 답변이 돌아올지도) 미지수 질문글을 남기고 무작정 기다리는것보단 먼저 검색이라도 해보는게 정답입니다
구글에서 문자열 치환용 스크립트 검색하면 세기도 귀찮은 숫자가 히트됩니다
몇개 돌려서 시험해보면 30분도 안 되서 해결 가능한 수준입니다
그리고 일일히 다 해결해드리는것보단 힌트만 드려서 직접 해결하게 유도하는게 낫습니다 (삽질해본 경험이 다 실력이 됩니다)
-
티본 2017.05.03 15:26
맞는 말씀이십니다. 저또한 검색도 해보고.. 알고는 있습니다.
자세한 질문, 말씀을 안드려서 오해의 소지가 있었나보네요..
질문으로 남긴 프로그램 내용은 NCT, 레이져기계에서 사용되는 G코드 입니다.
기계 오퍼레이터가 운영 편의를 위해 질문드린 부분으로 스스로 일일이 수정해서 사용을 하고 있더군요. (수십개 많게는 백여개가 넘습니다.)
오퍼레이터들은 대부분 컴맹이신 분들이셔서
가장 쉽게 해결할수 있는 방법을 찾는중, 배치파일로 작성 가능하다면 단한번 클릭으로 모든수정이 되겠다 싶어 여기에 질문글을 올린겁니다.
오퍼레이터분들께 도움을 드리려 했던 일인데. 이렇게 되버렸네요..^^;
-
고요한바다 2017.04.28 13:46
@echo off
cd /d %~dp0
setlocal enabledelayedexpansionREM ex) test1.txt~test100.txt
set _TxtName=test
for /l %%a in (1,1,100) do if exist "%_TxtName%%%a.txt" (
for /f "tokens=*" %%b in (%_TxtName%%%a.txt) do set _ram=%%b&& if "!_ram:~0,3!"=="G50" (
(echo M00& echo G50) >>tmp%%a.txt
) else (
>>tmp%%a.txt echo %%b)
move tmp%%a.txt %_TxtName%%%a.txt >nul
)
endlocal
exit -
티본 2017.04.28 19:31
아~~~ 진심으로 감사드립니다.
큰 도움이 되었습니다. ^^;
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
31390 | 하드웨어| 구형컴을 업그레이드 할려는데 조언 부탁합니다. [7] | superman | 532 | 04-26 |
31389 | 윈 도 우| 윈도우 8.1k 드라이버 설치 관련 질문입니다. | ibabu | 251 | 04-26 |
31388 | 윈 도 우| 윈도즈 설치시에 에러 메세지 [1] | Hunting | 313 | 04-26 |
31387 | 소프트웨어| MS office 2016 KMS 인증이 안됩니다 ㅠㅠ [11] | cumpatior | 5528 | 04-26 |
» | 윈 도 우| 배치파일 문자열 치환관련 [12] | 티본 | 729 | 04-26 |
31385 | 기 타| 토렌트 사용하다보면 [1] | gkgk77 | 570 | 04-26 |
31384 | 하드웨어| SSD 데이터 복구 안되나요? 미치겠습니다 [4] | 착한남자 | 1070 | 04-26 |
31383 | 윈 도 우| 가장 많이 사용하는 앱 표시 [2] | 올파 | 591 | 04-26 |
31382 | 소프트웨어| 반디집 질문 입니다. [2] | tuzki | 569 | 04-27 |
31381 | 윈 도 우| 윈도우 10과 리눅스 멀티부팅하시는 분 중 윈도우 업데이트... [4] | song | 485 | 04-27 |
31380 | 윈 도 우| 윈도우 화면 하단의 작업 표시줄이 자동 숨기가 되는데 어... [3] | 복두꺼비 | 417 | 04-27 |
31379 | 기 타| 시스템 창호 이상 | 복도리 | 339 | 04-27 |
31378 | 윈 도 우| 윈10 RS2에서 업데이트 후 이상한게 뜹니다. [2] | Day | 674 | 04-27 |
31377 | 윈 도 우| 토렌트 사이트에 윈도우10 영구 인중툴이라고 있던데 정말 ... [2] | 복두꺼비 | 1498 | 04-27 |
31376 | 윈 도 우| 파일 사용내역을 로그로 남기는 방법? [3] | 거북도사 | 374 | 04-27 |
31375 | 윈 도 우| HSP Service 이거 설정을 어떻게 해줘야 하나요? | 친절한효자 | 161 | 04-27 |
31374 | 윈 도 우| RS2에서 리얼텍 사운드 + 돌비 언락 안되네요. [1] | 절제자 | 597 | 04-27 |
31373 | 윈 도 우| RS2 검색 안됨 | 타시 | 228 | 04-27 |
31372 | 윈 도 우| 레드스톤2에서 스마트스크린을(smartscreen) 완전히 끄고 ... [8] | 건조한치는 | 722 | 04-27 |
31371 | 기 타| 맥북 사용 유저에게 도움을 요청합니다 ! [4] | 촌꼬마 | 272 | 04-27 |
문자열 다루는게 목적이라면 파워셀 쓰시던지, GNU계열 명령어 윈도용으로 컴파일된 바이너리를 쓰세요
구형 cmd/bat보다 횔씬 편하고, 깔끔하고, 간단하게 됩니다