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

[文本处理] 批处理如何批量删除多个UTF-8编码的文本内的指定字符串(<>之间的内容)?

本帖最后由 pcl_test 于 2016-8-14 12:08 编辑

在同一目录中,有很多个 *.trc 文件,批处理怎么才能删除这些内容后按原文件名输出到另一个文件夹???

例如;

[00:04.81]<736>嘉<564>俊<500>出<438>品<438>,<434>必<754>属<936>精<3059>品
[00:12.37]<548>每<316>段<500>故<623>事<377>都<312>有<312>一<376>篇<500>剧<1180>情
[00:17.12]<740>每<376>段<560>爱<564>情<312>都<310>像<378>动<312>人<565>旋<1180>律
[00:22.12]<740>一<312>颗<564>真<624>心<312>却<312>只<312>向<374>着<566>你<686>前<621>进
[00:27.25]<612>也<377>许<559>爱 <312>越<376>单<564>纯<560>越<564>着<1369>迷

怎么把符号 <> 之间,包括符号“<>”也全部删除。不是替换,删除后不留任何空格或者符号,自己摸索了很久,还是不会,求大神帮忙了!!!!!
1

评分人数

  1. @echo off
  2. more +4 "%0" | mshta http://bathome.net/s/hta/ "eval(WSH.StdIn.ReadAll())"
  3. pause&exit
  4. dir().files().grep(/\.trc$/i)._each(
  5.     function(file){
  6.         bin=iconv.load(file);
  7.         bom=iconv.checkBom(bin);
  8.         if(bom=='undefined')bom=iconv.toStr(bin,'gb2312')?'gb2312':'utf-8';
  9.         text=iconv.toStr(bin,bom);
  10.         text=text.replace(/<[^<]*>/g,'');
  11.         iconv.saveText(text,'New_'+file,bom)
  12.     }
  13. )
复制代码

TOP

这个BAT+JS混编可以,我只能处理单个的不会批量,看看群里高手怎么写吧,要不然把原来帖子删除,取重点重发帖子一次

第一次正则表达式提取
(?=[一-龥\((]).{1,}([一-龥a-zA-Z,,!!\r\n]|\)))|(\d+<\d+>年)?(\d+<\d+>月)?(\d+<\d+>日)?
保存为TXT
第二次正则表达式替换
[\[ \]]|(<\d+>)
替换值为空白

处理成下面的状态,歌词之间原本有空格的没了感觉很奇怪

寂寞在唱歌
阿桑
天黑了孤独又慢慢割着
有人的心又开始疼了
爱很远了很久没再见了
就这样竟然也能活着
你听寂寞在唱歌
轻轻的恨恨的
歌声是这么残忍
让人忍不住泪流成河
......

TOP

  1. fr *.trc -s -r:"<\d*>" /t:""
  2. fr *.trc -s -r:"\n" /t:"\r\n"
复制代码

TOP

TOP

谢谢版主的耐心帮助了 14# foxJL

TOP

又是UTF-8编码,纯P好像没办法.试试向别的高手请教VBS或PS吧

TOP

运行后就是这样的 11# foxJL

TOP

回复 8# foxJL

TOP

没有看到附件回复 10# 377563714

TOP

[attach]6864[/attach]回复 8# foxJL

TOP

是在同一目录的,就是写入的文件是空内容的 7# foxJL

TOP

把你的trc文件压缩一个传上来.

TOP

回复 6# 377563714


我也是WIN7系统,测试了没有问题
批处理文件和.trc文件放同一目录

TOP

新写入的文件怎么是空文件啊?系统是W7的 4# foxJL

TOP

返回列表