Board logo

标题: [文本处理] [已解决]批处理如何进行批量文本替换 [打印本页]

作者: q97012791    时间: 2009-10-25 06:30     标题: [已解决]批处理如何进行批量文本替换

请教各位高手~~~~~~~~~

我想用批处理

(或其他第三方dos工具也可以,只要速度快,因为偶要处理几十万个文件)

把 E:\www.xs8.cn\love 目录下(包括子目录)所有的html文件里

<img src='../../data (中间是任意字符) .png'/>

这一行内容(注意了噢!中间有一串长度不定的任意字符)

替换成这个符号,

请问这个P处理怎么写?

(不得用与DOS无关的第三方软件~)
(用到其他软件的请注明软件名称~谢谢~)

html文件里的部分内容如下

<div class="containerbook covertt"><span class="ctt"><i>第九章</i></span>作者:左左</div>
<script language="JavaScript" src="../../data/iframe/xad_text_title.js"></script>
<div class="txt" id="zoom">
      知道舒畅再也不会去酒吧<img src='../../data/k4/24851.png'/>但苏州也没有回去上班<img src='../../data/k4/24851.png'/>因为任她再欺骗自己、再假装一切都没发生<img src='../../data/k4/24851.png'/>但舒畅那晚盛怒及失望的眼眸<img src='../../data/k4/24851.png'/>却依然每夜每夜在她的梦中徘徊。<br />
<br />
她到底是怎么了?怎么会变成这样一个不敢面对现实的人?是否从那次事件之后<img src='../../data/k4/24851.png'/>她就学会了以这种方式疗伤<img src='../../data/k4/24851.png'/>而这种方式真的对吗?<br />
<br />
她明知道那不是他的本意<img src='../../data/k4/24851.png'/>但她却扭曲了他的善意<img src='../../data/k4/24851.png'/>可是她真的无法控制自己的一言一行<img src='../../data/k4/24851.png'/>因为深埋在内心最深处的伤疤竟这样<img src='../../data/k4/5644.png'/>裸地就被揭露了出来<img src='../../data/k4/24851.png'/>没有任何心理准备的她<img src='../../data/k4/24851.png'/>除了竖起全身的针刺来保有那仅存的自尊<img src='../../data/k4/24851.png'/>她做不出其它的反应。<br />
<br />
然而<img src='../../data/k4/24851.png'/>她或许保留了自己那可怜、渺不可及的尊严<img src='../../data/k4/24851.png'/>但失去的<img src='../../data/k4/24851.png'/>又是什么?<br />
<br />
<img src='../../data/k4/48953.png'/>姐姐<img src='../../data/k4/24851.png'/>我们要两个三明治跟两杯奶茶。<img src='../../data/k4/79552.png'/><br />
<br />
突然<img src='../../data/k4/24851.png'/>一个稚嫩的童音唤醒了苏州的冥思<img src='../../data/k4/24851.png'/>让她不得不慌乱地收拾起所有的心情<img src='../../data/k4/24851.png'/>开始了一天的忙碌。<br />
<br />
不再去张三的酒吧上班<img src='../../data/k4/24851.png'/>但为了全家的生计<img src='../../data/k4/24851.png'/>苏州只得一天打三份工<img src='../../data/k4/24851.png'/>早班在早餐店煎鸡蛋<img src='../../data/k4/24851.png'/>午班在二十四小时超商当店员<img src='../../data/k4/24851.png'/>晚班在高级饭店当服务生。这样的日子有些辛苦<img src='../../data/k4/24851.png'/>可或许正适合现在的她<img src='../../data/k4/24851.png'/>因为忙碌可以让她忘却所有的挣扎与烦恼<img src='../../data/k4/24851.png'/>一些她不想去思考却依然存在的问题。<br />
<br />
唯一美中不足的是<img src='../../data/k4/24851.png'/>父亲的照养工作只能交给母亲一人<img src='../../data/k4/24851.png'/>而她<img src='../../data/k4/24851.png'/>只能在换班的空档<img src='../../data/k4/24851.png'/>或偶尔休假时分才能去尽一尽孝道。<br />
<br />
这天正午<img src='../../data/k4/24851.png'/>灼热的阳光那样炙人<img src='../../data/k4/24851.png'/>但苏州无顾于脸上的汗水<img src='../../data/k4/24851.png'/>进进出出不断地将店外运送车中的货品卸下<img src='../../data/k4/24851.png'/>再奋力地将它搬回店后的库房内。<br />
<br />
如此来回五趟后<img src='../../data/k4/24851.png'/>她觉得自己都快要虚脱了<img src='../../data/k4/24851.png'/>但她还是振作起精神<img src='../../data/k4/24851.png'/>因为她今天晚上已请了假<img src='../../data/k4/24851.png'/>若能早点做完这些工作<img src='../../data/k4/24851.png'/>她便能到医院去探望父亲<img src='../../data/k4/24851.png'/>而她有五天没有见到他了。<br />
<br />
<img src='../../data/k4/48953.png'/>小姐<img src='../../data/k4/24851.png'/>有没有兴趣当模特儿?<img src='../../data/k4/79552.png'/>正当苏州在搬最后一箱货物时<img src='../../data/k4/24851.png'/>突然一个声音由她的斜前方响起。<br />
<br />
抬起头<img src='../../data/k4/24851.png'/>苏州冷眼瞄着眼前这个装扮看来像个嬉皮的男人<img src='../../data/k4/24851.png'/>但她手上跟脚上的动作停也没停<img src='../../data/k4/24851.png'/>继续迈步向店门走去。<img src='../../data/k4/48953.png'/>敢情你们是个专门包揽老人装的模特儿经纪公司?<img src='../../data/k4/79552.png'/><br />
<br />
……
……
……
……
……    中间内容省略 ……
……
……
……
……说完这句话后<img src='../../data/k4/24851.png'/>苏州与舒畅两人就这样四眼相接的动也不动<img src='../../data/k4/24851.png'/>而他们欲言又止却又默默无语的模样<img src='../../data/k4/24851.png'/>引起了不少人的注意<img src='../../data/k4/24851.png'/>纷纷在一旁窃窃私语了起来。<br />
<br />
<img src='../../data/k4/48953.png'/>甲申集团总裁即将有一项重要宣示<img src='../../data/k4/24851.png'/>请各位宾客暂时不要离开<img src='../../data/k4/24851.png'/>谢谢各位。<img src='../../data/k4/79552.png'/><br />
<br />
会场响起的声音<img src='../../data/k4/24851.png'/>彷佛是对苏州下的逐客令<img src='../../data/k4/24851.png'/>她缓缓地走离舞池<img src='../../data/k4/24851.png'/>然后静静地走向空无一人的阳台<img src='../../data/k4/24851.png'/>因为身后的世界已不再属于她。<br />
<br />
舒畅要怎么想对现在的她来说已经不重要了<img src='../../data/k4/24851.png'/>他以后要过什么样的生活也不是她可以干顶的<img src='../../data/k4/24851.png'/>但总算<img src='../../data/k4/24851.png'/>她表达了自己的歉意及谢意<img src='../../data/k4/24851.png'/>不管他是否接受<img src='../../data/k4/24851.png'/>她都做了她该做的了<img src='../../data/k4/1852.png'/><img src='../../data/k4/1852.png'/><br />
<br />
<img src='../../data/k4/48953.png'/>但其实我还有一句话没有说──<img src='../../data/k4/79552.png'/>望着远方的星空<img src='../../data/k4/24851.png'/>苏州的心彷佛也飞向了远方<img src='../../data/k4/24851.png'/>她喃喃自语:<img src='../../data/k4/48953.png'/>你曾问过我是否喜欢你<img src='../../data/k4/24851.png'/>我不是的<img src='../../data/k4/24851.png'/>我只是<img src='../../data/k4/1852.png'/><img src='../../data/k4/1852.png'/>那样仓皇失措的<img src='../../data/k4/1852.png'/><img src='../../data/k4/1852.png'/>爱着你<img src='../../data/k4/1852.png'/><img src='../../data/k4/1852.png'/><img src='../../data/k4/79552.png'/>
</div>
<div class="nextpre"><a href="248.html" ><<上一章</a>|<span class="backindex"><a href="index.html">返回目录</a></span>|<a href="250.html">下一章>></a></div>
    <div class="keyboard">小提示:按 回车[Enter]键 返回书目,按 <strong>←</strong>键 返回上一章, 按 <strong>→</strong>键 进入下一章。</div>
<div class="ad73090"><a href="../../default.htm" target="_blank">言情小说</a>  
<a href="../../../bbs.xs8.cn/default.htm" class="l14" target="_blank"><font color="#006600"><u>如果您喜欢<font color="#0000FF">《XL美女》</font>,请去<font color="#0000FF">【推荐小说区】</font>推荐本书, 让更多的书友和你一起快乐^_^</u></font>
</a></div>
<div id="empty73000"></div>   
</td></tr></table>
</td>









测试用的11个html文件打包(大小:142Kb)


http://rtngslin.moe.hm/cndos-up/img/1735.zip


下面是我用非DOS软件替换好的html文件

http://rtngslin.moe.hm/cndos-up/img/1736.zip


给出这个软件的截图~





由于这个软件在我的笔记本上工作久了会死机 T_T(要替换60多万文件呐!我的笔记本256M内存不够用)~
所以只好选择P处理这种运行起来不用很大内存的方式来工作~  XD

随便把这个给大家当个练习题做~
大家来试试吧~


标准:

      最后用脚本替换完成后的文件跟我用这个软件替换后的文件一样就算
合格~



                                      好了!各位~开始解题吧~!:)


--------------------------------------------------------------------------------------------------------------------------------


答案一:

.
原帖由 asnahu 于 2009-10-25 18:20 发表
-_-!不是不能删除,是你的电脑太慢。

@echo off
for /f "delims=" %%i in ('dir /s/b *.html') do (
        sed "s/]*>/☆/g"  "%%~i" > "%%~i_"
        move "%%~i_" "%%~i"
)
exit


[ 本帖最后由 q97012791 于 2009-10-25 19:21 编辑 ]
作者: asnahu    时间: 2009-10-25 09:16

  1. @echo off
  2. for /f "delims=" %%i in ('dir /s/b *.html') do (
  3.         sed -i "s/<img[^\>]*>/☆/g" "%%~i"
  4. )
  5. exit
复制代码
SED 4.2:http://gnuwin32.sourceforge.net/packages/sed.htm

注意:代码是直接修改,使用前备份。

[ 本帖最后由 asnahu 于 2009-10-25 09:24 编辑 ]
作者: dailisishen    时间: 2009-10-25 10:32

sed是什么意思啊???那个网站我看不懂啊T-T

[ 本帖最后由 dailisishen 于 2009-10-25 10:33 编辑 ]
作者: keen    时间: 2009-10-25 12:45     标题: 回复 3楼 的帖子

sed是第三方工具,下载请参考:
http://bbs.bathome.net/thread-1114-1-1.html
作者: q97012791    时间: 2009-10-25 16:41

原帖由 asnahu 于 2009-10-25 09:16 发表
@echo off
for /f "delims=" %%i in ('dir /s/b *.html') do (
        sed -i "s/]*>/☆/g" "%%~i"
)
exitSED 4.2:http://gnuwin32.sourceforge.net/packages/sed.htm

注意:代码是直接修改,使用前备份。



我测试了你的代码~
效果非常不错~速度很快~~~
只是有一点不足~替换完成后~
只生成一堆“sedDOS***”的文件~
要我手动重命名才可以查看~~
能不能 替换完成后 直接覆盖源html文件呢
(路径和文件名也要和原文件一样哦~)
                                         谢谢了~~~

[ 本帖最后由 q97012791 于 2009-10-25 16:42 编辑 ]
作者: asnahu    时间: 2009-10-25 16:57

试试这个:

  1. @echo off
  2. for /f "delims=" %%i in ('dir /s/b *.html') do (
  3.         sed -i "s/]*>/☆/g" "%%~i"
  4. )
  5. del /f/s/q sed*
  6. exit
复制代码

作者: asnahu    时间: 2009-10-25 17:01

试试这个:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /s/b *.html') do (
  3.         sed -i "s/<img[^\>]*>/☆/g" "%%~i"
  4. )
  5. del /f/s/q sed*
  6. exit
复制代码


网速慢了点没显示出来多发了一帖劳烦斑竹删除楼上。另:发现论坛对code的过滤有点问题。

[ 本帖最后由 asnahu 于 2009-10-25 17:04 编辑 ]
作者: q97012791    时间: 2009-10-25 17:48

还是不行~
原因~
你的代码不是直接处理html文件~
而是处理完后的生成一个sedDOS***文件
所以  del /f/s/q sed*   肯定错了
你可以下载附件来试试
作者: asnahu    时间: 2009-10-25 18:20

-_-!不是不能删除,是你的电脑太慢。

  1. @echo off
  2. for /f "delims=" %%i in ('dir /s/b *.html') do (
  3.         sed "s/<img[^\>]*>/☆/g"  "%%~i" > "%%~i_"
  4. move "%%~i_" "%%~i"
  5. )
  6. exit
复制代码

作者: q97012791    时间: 2009-10-25 19:13

原帖由 asnahu 于 2009-10-25 18:20 发表
-_-!不是不能删除,是你的电脑太慢。

@echo off
for /f "delims=" %%i in ('dir /s/b *.html') do (
        sed "s/]*>/☆/g"  "%%~i" > "%%~i_"
        move "%%~i_" "%%~i"
)
exit



果然强大~~
非常感谢~~~
手指一点~搞定~
如果能直接写源文件就更完美了~~~
作者: bjjgq    时间: 2009-11-21 09:25

谢谢了,我找这个帖子半个月了,确实很有用哟
作者: q97012791    时间: 2009-11-25 01:56

老大。我还有个问题没解决~

帮我看一下好吗,我发新帖了。

http://bbs.bathome.net/thread-6483-1-1.html




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