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

[文本处理] [已解决]求批处理删除文本指定字符的指定内容

本帖最后由 toobat 于 2015-4-13 10:21 编辑

在"C:\播放器\setting.ini"里的内容:

[music]
log_play=201504101624
open=CD12
[history]
login0=201504101623
login1=201504101623

1.把log_play那行整行删掉
2.把open=CD12只删掉CD12就是等号后面的
3.删掉[history]的包括的内容,就是删掉下面内容:

[history]
login0=201504101623
login1=201504101623

不过[history]有时候后面多出[update]的内容
[history]
login0=201504101623
login1=201504101623
[update]
update=201503021105
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 bailong360 于 2015-4-12 13:39 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "useback tokens=1,2* delims==" %%i in ("C:\播放器\setting.ini") do (
  4.     set value=%%i
  5. if not "%%j"=="" (set str=%%i=%%j) else set str=%%i
  6.     if "%%i"=="log_play" (
  7.         set str=
  8.     ) else if "%%i"=="open" set str=%%i=
  9.     if "%%i"=="[history]" (
  10.         set skip=
  11.     ) else if "!value:~0,1!"=="[" set skip=0
  12.     if not "!str!"=="" (
  13.         if not "!skip!"=="" echo !str!)
  14. ))>$tmp
  15. move /y "$tmp" "C:\播放器\setting.ini"
复制代码
1

评分人数

    • toobat: 乐于助人,非常好!技术 + 1

TOP

回复 2# bailong360
1

评分人数

    • CrLf: 这么隐蔽都被你发现了技术 + 1

TOP

回复 3# pcl_test


感谢

TOP

回复 2# bailong360


    多谢解答,不过现在[xx]后面的多了个=

[music]=
open=
[history]=
login0=201504101623
login1=201504101623
[update]=
update=201503021105

TOP

回复 5# toobat


已修改

TOP

回复 6# bailong360


bailong360大哥,可不可以再请教一下:

1.如果有多项像log_play整行删掉的,该怎样添加修改?
2.如果有多项open=CD12只删掉CD12就是等号后面的,该怎样添加修改?
3.不用删除[history]那项,该怎样添加修改?

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "useback tokens=1,2* delims==" %%i in ("C:\播放器\setting.ini") do (
  4.     set value=%%i
  5. if not "%%j"=="" (set str=%%i=%%j) else set str=%%i
  6.     for %%a in ("log_play" "log_play2") do if "%%i"==%%a set str=
  7. for %%a in ("open" "open2") do if "%%i"==%%a set str=%%i=
  8.     if not "!str!"=="" (echo !str!)
  9. ))>$tmp
  10. move /y "$tmp" "C:\播放器\setting.ini"
复制代码
1

评分人数

    • toobat: 感谢解答帮助技术 + 1

TOP

回复 8# bailong360


    能用到log_play*这样的通配符来代替相似的吗?

TOP

回复 9# toobat
不能...

TOP

返回列表