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

[文本处理] [已解决]删除特定字符所在的行

[复制链接]
发表于 昨天 08:50 | 显示全部楼层 |阅读模式
本帖最后由 zhoubin 于 2026-7-6 18:42 编辑

有一文件office.reg,
office.reg中的字符]所在的行,若该行下面一行没有字符,则删除该行,批处理怎么写?
谢谢各位,谢谢!

代码在4楼,感谢aloha20200628,感谢各位坛友!!
发表于 昨天 14:17 | 显示全部楼层
本帖最后由 aloha20200628 于 2026-7-6 15:07 编辑

理解题意为:删除指定文件中包含 ] 字符的文本行,如果其后是一个空行
以下批代码调用 powershell 处理会更简捷...

test.bat
  1. <# ::
  2. @echo off &setlocal &set "inF=office.reg" &set "outF=office.new.reg"
  3. powershell -nop -c "$f='%inF%'; iex(${%~f0}|out-string)">"%outF%"
  4. type "%outF%" &pause&exit/b
  5. #>
  6. $a=gc $f; $r=@(); for ($i=0; $i -lt $a.count; $i++) {
  7.    if ($a[$i].contains(']') -and $a[$i+1] -eq '') {continue}
  8.    $r+=$a[$i] }
  9. $r; exit
复制代码

评分

参与人数 1技术 +1 收起 理由
zhoubin + 1 乐于助人

查看全部评分

 楼主| 发表于 昨天 15:31 | 显示全部楼层
本帖最后由 zhoubin 于 2026-7-6 15:33 编辑

谢谢,这个能全字匹配吗?比如含有]"字符的行就不要删除了,谢谢!!
发表于 昨天 16:55 | 显示全部楼层
本帖最后由 aloha20200628 于 2026-7-6 18:16 编辑
zhoubin 发表于 2026-7-6 15:31
谢谢,这个能全字匹配吗?比如含有]"字符的行就不要删除了,谢谢!!


订正如下...

test.bat
  1. <# ::
  2. @echo off &setlocal &set "inF=office.reg" &set "outF=office.new.reg"
  3. powershell -nop -c "$f='%inF%'; iex(${%~f0}|out-string)">"%outF%"
  4. type "%outF%" &pause&exit/b
  5. #>
  6. $a=gc $f; $r=@(); for ($i=0; $i -lt $a.count; $i++) {
  7.    if ($a[$i].contains(']') -and (-not $a[$i].contains('"')) -and $a[$i+1] -eq '') {continue}
  8.    $r+=$a[$i] }
  9. $r; exit
复制代码

评分

参与人数 1技术 +1 收起 理由
zhoubin + 1 这个可以,感谢帮忙!!

查看全部评分

 楼主| 发表于 昨天 17:48 | 显示全部楼层

我没说清楚,是包含字符]不带引号的行删除,包含字符]"带引号的行保留,辛苦了,谢谢!!
发表于 昨天 18:22 | 显示全部楼层
4楼代码已订正》处理仅包含字符 ] 的文本行,不处理既包含字符 ] 也包含字符 " 的文本行...
 楼主| 发表于 昨天 18:40 | 显示全部楼层
aloha20200628 发表于 2026-7-6 18:22
4楼代码已订正》处理仅包含字符 ] 的文本行,不处理既包含字符 ] 也包含字符 " 的文本行... ...

谢谢,4楼的代码可以了,谢谢您!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-7 05:34

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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