[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 新手求教怎么能用批处删除文件内指定的内容

我想删除TetsYYVop=后面的所有内容,其他的内容保持不变。TetsYYVop=后面的内容有时会变。
文件在   D:\办公\.1txt

第三方 sed:
  1. sed "s/^\(TetsYYVop=\).*/\1/" 1.txt
复制代码

TOP

回复 2# CrLf


    不想用第3方软件。弄不懂。

TOP

本帖最后由 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
复制代码

TOP

回复 4# CrLf


    为什么我测试下了把所有内容都删除了,只留了最后一行内容。

TOP

回复 5# hdhyg


    漏了一对括号,已修改

TOP

回复 6# CrLf


    还是不能删除,在每行后都加一个=不知为什么。

刚学bat的新手。

TOP

回复 7# hdhyg


    又漏一个 "=",已修改...

TOP

本帖最后由 hdhyg 于 2012-7-21 15:17 编辑

回复 8# CrLf


    这样是能删除了,但有个2问题,1.把TetsYYVop=后面的包括=号都删删除了,我只要删除TetsYYVop=后面的内容,=号不能删。。。。2.在没有=号的,比如1行3行后面都会加一个等号。

TOP

本帖最后由 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
复制代码
1

评分人数

TOP

回复 10# CrLf


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

TOP

返回列表