Board logo

标题: [文本处理] 新手求教怎么能用批处删除文件内指定的内容 [打印本页]

作者: hdhyg    时间: 2012-7-21 12:59     标题: 新手求教怎么能用批处删除文件内指定的内容

我想删除TetsYYVop=后面的所有内容,其他的内容保持不变。TetsYYVop=后面的内容有时会变。
文件在   D:\办公\.1txt
作者: CrLf    时间: 2012-7-21 13:34

第三方 sed:
  1. 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 编辑
  1. @echo off
  2. (for /f "tokens=1* delims==" %%a in (1.txt) do (
  3.    if %%a==TetsYYVop (echo %%a) else echo %%a=%%b
  4. ))>$
  5. 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
  1. @echo off
  2. (for /f "delims=" %%a in (1.txt) do (
  3.    for /f "tokens=1* delims==" %%b in ("%%a") do (
  4.       if %%b==TetsYYVop (
  5.          echo %%b=
  6.       ) else (
  7.          if "%%c"=="" (echo %%a) else echo %%b=%%c
  8.       )
  9.    )
  10. ))>$
  11. move /y $ 1.txt
复制代码

作者: hdhyg    时间: 2012-7-21 15:29

回复 10# CrLf


    谢谢谢谢。终于可以完美的删除了!!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2