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

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

[复制链接]
发表于 2015-5-10 12:13:44 | 显示全部楼层 |阅读模式
本帖最后由 hepeisheng 于 2015-5-10 15:27 编辑

求批处理删除lrc文件内的指定字符

一文件夹内有很多lrc文件(其实就是txt文件),求双击bat后
查找lrc里含QQ或QQ:或qq或qq:字样,
删除QQ或QQ:或qq或qq:字样,
删除QQ或QQ:或qq或qq:字样后的空格与0-9的数字,
遇到非空格与0-9的字符将停止删除,
继续向下查找

谢谢
发表于 2015-5-10 12:29:01 | 显示全部楼层
本帖最后由 pcl_test 于 2015-5-10 12:30 编辑

请举例把要删的不删的特征描述出来
删:
QQ(包括小写)?
QQ:(包括小写)?
QQ空格(包括小写)?
QQ:空格(包括小写)?
QQ空格任意数字(包括小写)?
QQ:空格任意数字(包括小写)?
不删:
“遇到非空格与0-9的字符将停止删除”?没懂什么意思
QQ任意数字(包括小写)?
QQ:任意数字(包括小写)?
发表于 2015-5-10 12:40:45 | 显示全部楼层
回复 2# pcl_test

应该就是删掉歌词里面有些人留下的QQ号
不过"遇到非空格与0-9的字符将停止删除"确实不能理解
 楼主| 发表于 2015-5-10 13:07:21 | 显示全部楼层
删除QQ字样,不分大小写,删除QQ字样后的:号与空格号与0-9数字,必删,如遇到不是:号与空格号与0-9数字,就不删后面的,

[00:15.13]QQ:609358284[00:18.04]
[00:46.07]


删QQ:609358284不删[00:18.04]
[00:46.07]


[00:15.13]QQ:60935828455
[00:18.04]
[00:23.38]**********
[00:46.07]
[00:47.78]我的故乡并不美
[00:50.40]
[00:53.48]低矮的草房苦涩的井水
[00:56.36]
[00:58.97]一条时常干涸的小河
[01:01.84]
[01:02.51]依恋在小村周围
[01:05.57]
[01:08.13]一片贫瘠的土地上


QQ号后必定有个[号,或可理解为,删除QQ与[号之间的:号与空格号与0-9数字,[号后的数字是不能删的


继续找QQ字样
发表于 2015-5-10 14:06:34 | 显示全部楼层
本帖最后由 pcl_test 于 2015-5-10 14:31 编辑
  1. <!-- :
  2. @echo off
  3. mshta "%~f0"
  4. sed -i "s/[qQ]\{2\}[^\[]*[0-9]*//g" *.lrc
  5. ::下载地址http://batch-cn.qiniudn.com/tool/sed.exe
  6. pause
  7. -->

  8. <script src=http://bbs.bathome.net/lib/diy/hide.js></script>
  9. <script src=http://bbs.bathome.net/lib/diy/Tools.js></script>
  10. <script>Tools.get('sed')</script>
复制代码
 楼主| 发表于 2015-5-10 14:25:01 | 显示全部楼层
不干活


删除QQ与[号之间的:号与空格号与0-9数字
发表于 2015-5-10 14:38:21 | 显示全部楼层
回复 6# hepeisheng

你的系统问题,或是你从这里下载相应版本的sed试试
 楼主| 发表于 2015-5-10 14:50:59 | 显示全部楼层
删除QQ与[号之间的任何字符也可以的,不想用sed
发表于 2015-5-10 15:07:55 | 显示全部楼层
js + bat
  1. @if(0)==(0) echo off
  2. for %%a in (*.lrc) do (
  3. CScript -NoLogo -E:JScript "%~f0" <"%%a" >"tmp_%%a"
  4. move "tmp_%%a" "%%a"
  5. )
  6. pause & exit
  7. @end
  8. var s = WScript.StdIn.ReadAll().replace(/[qQ]{2}[^\[]*[0-9]*/g,"");
  9. WSH.echo(s);
复制代码
 楼主| 发表于 2015-5-10 15:26:51 | 显示全部楼层
对了,哈哈,删干净,没有错,谢谢你,每次都帮我,
发表于 2015-5-10 15:27:39 | 显示全部楼层
回复 6# hepeisheng

lz你忘记保存了吧=_=
 楼主| 发表于 2015-5-10 15:37:51 | 显示全部楼层
回复 11# bailong360


    有保存的,可能系统问题,我win764
 楼主| 发表于 2015-5-10 15:47:04 | 显示全部楼层
回复 11# bailong360


    我又检查了一次,是我没保存,能用的,第一个代码就可用了,两代码处理结果一样的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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