标题: [文本处理] 批处理怎样删除两个指定字符串之间的字符/内容? [打印本页]
作者: a406575115 时间: 2010-12-25 13:46 标题: 批处理怎样删除两个指定字符串之间的字符/内容?
本帖最后由 pcl_test 于 2017-4-11 13:51 编辑
X26.546 Y-5.914 Z-1.465
X26.633 Y-5.811 Z-1.505
X26.72 Y-5.707 Z-1.557
X26.806 Y-5.604 Z-1.622
X26.85 Y-5.552 Z-1.661
X26.893 Y-5.5 Z-1.724
G00 Z.276
Z10.
G0 G53 Z0.M09
G29Q11-2 D3R1.5 光 -0.05 -1.8 1
M30
请问批处理怎么删除M09,M30 之间的字符?
M09,M30 之间的字符是会变的。
我只会一些比如del, dir 的简单命令! 求助啊!
文件名为:*.tat
[ 本帖最后由 a406575115 于 2010-12-25 13:50 编辑 ]
作者: Batcher 时间: 2010-12-25 16:01
能否在顶楼描述一下你希望得到的结果是什么?是把倒数第二行删掉么?
作者: hanyeguxing 时间: 2010-12-25 17:35
“M09,M30 之间的字符是会变的。”那么其他字符会变吗?特别是M09和M30所在行的内容、位置等。
作者: a406575115 时间: 2010-12-25 18:36
X26.806 Y-5.604 Z-1.622
X26.85 Y-5.552 Z-1.661
X26.893 Y-5.5 Z-1.724
G00 Z.276
Z10.
G0 G53 Z0.M09
G29Q11-2 D3R1.5 光 -0.05 -1.8 1
M30
G0 G53 Z0.M09 , M30 都不变
其实就是要把: G29Q11-2 D3R1.5 光 -0.05 -1.8 1 这行删了 。
但这行是每个文件里的不一样。
要的结果是:
X26.893 Y-5.5 Z-1.724
G00 Z.276
Z10.
G0 G53 Z0.M09
M30
一位热心的朋友给我写了一个,可以用。
欢迎参详、或精简。下面是代码,也希望可以帮到有需要的人。
当然可以完成的也不止一种办法。
@echo off&color f1&setlocal enabledelayedexpansion
set s1=M09
set s2=M30
echo/&echo 正在处理
for /f "delims=" %%a in ('dir/b/a-d *.txt')do (
set f=&echo %%a&set/a n+=1
(for /f "usebackq delims=" %%b in ("%%a")do (
if not defined f echo.%%b
set hh=%%b
if not "!hh:%s1%=!"=="%%b" set f=y
if not "!hh:%s2%=!"=="%%b" set f=&echo.%%b
))>ykytemp
move/y ykytemp "%%a")
echo/&echo OK 共处理 %n% 个文件
pause
作者: hanyeguxing 时间: 2010-12-25 18:48
单文件,不保留空行:- @echo off
- (for /f "usebackq delims=" %%b in ("1.txt")do (
- if /i "%%b"=="M30" set f=
- if not defined f echo %%b
- if /i "%%b"=="G0 G53 Z0.M09" set f==
- ))>temp
- move temp "1.txt"
复制代码
多文件,保留空行,跳过不需要修改的文件:- @echo off
- for %%c in (*.txt)do (
- set a=&set b=
- (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%%c"')do (
- if /i "%%b"=="M30" set a=
- if not defined a echo/%%b
- if /i "%%b"=="G0 G53 Z0.M09" set a==&set b==
- ))>temp
- if defined b move temp "%%c"
- )
- if exist temp del temp
复制代码
[ 本帖最后由 hanyeguxing 于 2010-12-25 19:24 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |