标题: [文本处理] 新手求教怎么能用批处删除文件内指定的内容 [打印本页]
作者: hdhyg 时间: 2012-7-21 12:59 标题: 新手求教怎么能用批处删除文件内指定的内容
我想删除TetsYYVop=后面的所有内容,其他的内容保持不变。TetsYYVop=后面的内容有时会变。
文件在 D:\办公\.1txt
作者: CrLf 时间: 2012-7-21 13:34
第三方 sed:- sed "s/^\(TetsYYVop=\).*/\1/" 1.txt
复制代码
作者: hdhyg 时间: 2012-7-21 13:44
回复 2# CrLf
不想用第3方软件。弄不懂。
作者: CrLf 时间: 2012-7-21 13:51
本帖最后由 CrLf 于 2012-7-21 15:03 编辑
- @echo off
- (for /f "tokens=1* delims==" %%a in (1.txt) do (
- if %%a==TetsYYVop (echo %%a) else echo %%a=%%b
- ))>$
- move /y $ 1.txt
复制代码
作者: hdhyg 时间: 2012-7-21 14:28
回复 4# CrLf
为什么我测试下了把所有内容都删除了,只留了最后一行内容。
作者: CrLf 时间: 2012-7-21 14:31
回复 5# hdhyg
漏了一对括号,已修改
作者: hdhyg 时间: 2012-7-21 14:59
回复 6# CrLf
还是不能删除,在每行后都加一个=不知为什么。
刚学bat的新手。
作者: CrLf 时间: 2012-7-21 15:03
回复 7# hdhyg
又漏一个 "=",已修改...
作者: hdhyg 时间: 2012-7-21 15:15
本帖最后由 hdhyg 于 2012-7-21 15:17 编辑
回复 8# CrLf
这样是能删除了,但有个2问题,1.把TetsYYVop=后面的包括=号都删删除了,我只要删除TetsYYVop=后面的内容,=号不能删。。。。2.在没有=号的,比如1行3行后面都会加一个等号。
作者: CrLf 时间: 2012-7-21 15:18
本帖最后由 CrLf 于 2012-7-21 15:22 编辑
回复 9# hdhyg - @echo off
- (for /f "delims=" %%a in (1.txt) do (
- for /f "tokens=1* delims==" %%b in ("%%a") do (
- if %%b==TetsYYVop (
- echo %%b=
- ) else (
- if "%%c"=="" (echo %%a) else echo %%b=%%c
- )
- )
- ))>$
- move /y $ 1.txt
复制代码
作者: hdhyg 时间: 2012-7-21 15:29
回复 10# CrLf
谢谢谢谢。终于可以完美的删除了!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |