Board logo

标题: [文本处理] [已解决]求批处理删除文本指定字符的指定内容 [打印本页]

作者: toobat    时间: 2015-4-11 11:33     标题: [已解决]求批处理删除文本指定字符的指定内容

本帖最后由 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
作者: bailong360    时间: 2015-4-11 18:48

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

作者: pcl_test    时间: 2015-4-11 21:33

回复 2# bailong360
作者: bailong360    时间: 2015-4-11 21:45

回复 3# pcl_test


感谢
作者: toobat    时间: 2015-4-12 07:59

回复 2# bailong360


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

[music]=
open=
[history]=
login0=201504101623
login1=201504101623
[update]=
update=201503021105
作者: bailong360    时间: 2015-4-12 08:13

回复 5# toobat


已修改
作者: toobat    时间: 2015-5-9 16:14

回复 6# bailong360


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

1.如果有多项像log_play整行删掉的,该怎样添加修改?
2.如果有多项open=CD12只删掉CD12就是等号后面的,该怎样添加修改?
3.不用删除[history]那项,该怎样添加修改?
作者: bailong360    时间: 2015-5-9 23:11

  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"
复制代码

作者: toobat    时间: 2015-5-10 18:19

回复 8# bailong360


    能用到log_play*这样的通配符来代替相似的吗?
作者: bailong360    时间: 2015-5-10 18:41

回复 9# toobat
不能...




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