윈 도 우 배치파일 문자열 치환관련
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 | - | - |
99772 | 윈 도 우| 지금도 slic2.1 oem 인증 쓰시나요? [3] | 니애미다 | 58326 | 02-28 |
99771 | 윈 도 우| windows 7 tiny[티니] 설치 요령 [53] | 그루터기 | 57997 | 10-21 |
99770 | 윈 도 우| 원본이 삭제된 바로가기 [3] | 공자 | 55600 | 07-04 |
99769 | 하드웨어| 오피스2010 kms인증을 하니 HD오디오 관리자 실행이 안됩니다. [9] | 참고등어 | 54997 | 06-10 |
99768 | 윈 도 우| 추가의 godmode 스트링 값... [2] | 해미 | 51826 | 01-08 |
99767 | 윈 도 우| MEMORive USB 8gb 포맷 불가능 [5] | 노익장 | 48399 | 09-25 |
99766 | 비스타에서 메모리 관리가... [2] | 비치맨 | 42925 | 09-10 |
99765 | 아래 사진과 글 같이 저장하는법 좀 부탁합니다.^^ [4] | Come Vorre | 42217 | 09-18 |
99764 | 윈 도 우| 윈도우 7 처음 설치 후 하는 좋은 설정들! [12] | 진모씨 | 39943 | 02-09 |
99763 | 윈 도 우| 윈7 얼티 64비트 AI인증할떄 윈도멈춤현상? [3] | 로즈버드 | 38992 | 11-15 |
99762 | 윈 도 우| 윈도우8 설치하는데 시리얼 입력에서 부터 막힙니다. [9] | 커피한사발 | 37432 | 10-04 |
99761 | 윈 도 우| SSD AHCI모드에서 윈도우7설치불가 문의드립니다. [5] | TheMaRine | 36618 | 11-13 |
99760 | 소프트웨어| 혹 과자 어디서 구하나요? [7] | 니킬 | 36071 | 03-18 |
99759 | 윈 도 우| 라이센스 초기회수...복구오류.... [25] | 칼잡이 | 35855 | 11-13 |
99758 | 하드웨어| USB PID:165 cd영역문제.... [3] | 조브 | 34745 | 02-22 |
99757 | 윈 도 우| AI1006 중에서... 4기가 메모리... [1] | 다빈치코드 | 34695 | 11-13 |
99756 | 하드웨어| 아수스 바이오스 업데이트.. [11] | 비비안린 | 34523 | 03-18 |
99755 | 윈 도 우| 윈도우7 ahci모드 설치시 [3] | alter | 34506 | 11-15 |
99754 | 하드웨어| 유무선 공유기 하나 추천해주세요 ^^ [7] | 만쓰별 | 33930 | 12-01 |
99753 | 윈 도 우| win 7 다이어트.........고수분께서 자세한 해석 부탁 드립... [1] | 바람의언덕 | 33415 | 02-06 |
문자열 다루는게 목적이라면 파워셀 쓰시던지, GNU계열 명령어 윈도용으로 컴파일된 바이너리를 쓰세요
구형 cmd/bat보다 횔씬 편하고, 깔끔하고, 간단하게 됩니다