如何用批处理 删除两个字符之间的内容(多行)?
例如:
G01X-3.0Y0.8
G01X0.0Y99.2
G01X350.0Y0.0
G01X4.0Y0.0
M03
G40
(PART RIPCUT)
G00X23.8Y-1187.6
M04
G01X0.0Y1500.0
M03
(BLOCK)
G00X-1937.6Y-1500.0
(END OF SHEET)
(END OF PROGRAM)
M30
(RIPCUT)和(BLOCK)之间的行
文件夹D:\CNC里放有许多.B3文件,需要批处理修改上面的代码。但有的文件没有(PART RIPCUT)和(BLOCK)及其之间的内容,这些文件不做修改。请各位朋友帮忙- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /s/b *.b3') do (
- cd.>"%%a_"
- for /f "tokens=1,2 delims=:" %%i in ('findstr /n "." "%%a"') do (
- set "var=%%j"
- if not defined n echo %%j
- if defined m echo %%j
- if "!var:~1,4!"=="PART" set n=%%i
- if "!var:~1,5!"=="BLOCK" set m=%%i & echo %%j
- ) >> "%%a_"
- set n=
- set m=
- move "%%a_" "%%a"
- )
- exit
复制代码 这个批处理bat,解决了上面的问题,能删除PART""BLOCK这两个字符间的内容。
(END OF SHEET)
M30
G01X-3.0Y0.8
G01X0.0Y99.2
G01X350.0Y0.0
G01X4.0Y0.0
M03
G40
(PART RIPCUT)
(BLOCK)
G00X-1937.6Y-1500.0
(END OF PROGRAM)
但是如果我把"PART"改成"G40","BLOCK""改成"G00X"却无法删除这两个字符间的内容。文件内容不变。
如果我把"PART"改成"G40","BLOCK""改成"M30"却无法删除这两个字符间的内容,而且文件内容还增加了。如下。
G01X-3.0Y0.8
G01X0.0Y99.2
G01X350.0Y0.0
G01X4.0Y0.0
M03
G40
(PART RIPCUT)
G00X23.8Y-1187.6
M04
G01X0.0Y1500.0
M03
(BLOCK)
G00X-1937.6Y-1500.0
(END OF SHEET)
(END OF PROGRAM)
M30
这个批处理文件能不能改成删除txt文件中任意指定位置和内容的两个字符之间的内容?不懂每句实际意义的菜鸟求助,谢谢。 |