找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29383|回复: 9

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

[复制链接]
发表于 2015-4-11 11:33:51 | 显示全部楼层 |阅读模式
本帖最后由 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

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-4-11 18:48:27 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
toobat + 1 乐于助人,非常好!

查看全部评分

发表于 2015-4-11 21:33:22 | 显示全部楼层
回复 2# bailong360

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 这么隐蔽都被你发现了

查看全部评分

发表于 2015-4-11 21:45:08 | 显示全部楼层
回复 3# pcl_test


感谢
 楼主| 发表于 2015-4-12 07:59:22 | 显示全部楼层
回复 2# bailong360


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

[music]=
open=
[history]=
login0=201504101623
login1=201504101623
[update]=
update=201503021105
发表于 2015-4-12 08:13:29 | 显示全部楼层
回复 5# toobat


已修改
 楼主| 发表于 2015-5-9 16:14:39 | 显示全部楼层
回复 6# bailong360


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

1.如果有多项像log_play整行删掉的,该怎样添加修改?
2.如果有多项open=CD12只删掉CD12就是等号后面的,该怎样添加修改?
3.不用删除[history]那项,该怎样添加修改?
发表于 2015-5-9 23:11:17 | 显示全部楼层
  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技术 +1 收起 理由
toobat + 1 感谢解答帮助

查看全部评分

 楼主| 发表于 2015-5-10 18:19:39 | 显示全部楼层
回复 8# bailong360


    能用到log_play*这样的通配符来代替相似的吗?
发表于 2015-5-10 18:41:31 | 显示全部楼层
回复 9# toobat
不能...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 05:16 , Processed in 0.021932 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表