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

[文本处理] [已解决]如何写 批量替换指定的文件的文字?

哥们,你们好!  
   有一个文本a.txt   里面列出了一批html文件的路径 如:
D:\www\2010\1230\372.html
E:\www\2010\1120\211.html
G:\www\2010\1123\83.html
D:\www\2010\0130\1265.html
D:\www\2010\0230\22073.html
.................

另一个文件 b.txt 写了一些关键字,每行一个(大概上百个吧)。

现在我想写个批处理,能够把b.txt里面所说的关键字从a.txt里面的文件中批量替换为***        请问怎么写比较好?

小弟先谢谢了..

  1. @echo off
  2. (for /f "usebackq delims=" %%a in ("b.txt") do (
  3.     set /p =""%%a" "<nul
  4. )) >.tmp
  5. set /p KeywordList=<.tmp
  6. for /f "usebackq tokens=*" %%f in ("a.txt") do (
  7.     findstr /n .* "%%f" >.tmp
  8.     (for /f "tokens=*" %%a in (.tmp) do (
  9.         set var=%%a
  10.         SetLocal EnableDelayedExpansion
  11.         for %%w in (!KeywordList!) do set var=!var:%%~w=***!
  12.         echo,!var:*:=!
  13.         EndLocal
  14.     )) >"%%f"
  15. )
  16. del .tmp
  17. echo 完成!按任意键退出...
  18. pause >nul
复制代码

[ 本帖最后由 ik22 于 2011-1-16 19:50 编辑 ]
1

评分人数

    • tmplinshi: 感谢给帖子标题标注[已解决]字样PB + 2

楼下的强大。。。。。。

[ 本帖最后由 yhcbird 于 2011-1-16 20:31 编辑 ]
菜鸟学批,一批一大批~~~~~~

TOP

  1. @echo off
  2. (for /f "usebackq delims=" %%a in ("b.txt") do (
  3.     set /p =""%%a" "<nul
  4. )) >.tmp
  5. set /p KeywordList=<.tmp
  6. for /f "usebackq tokens=*" %%f in ("a.txt") do (
  7.     findstr /n .* "%%f" >.tmp
  8.     (for /f "tokens=*" %%a in (.tmp) do (
  9.         set var=%%a
  10.         SetLocal EnableDelayedExpansion
  11.         for %%w in (!KeywordList!) do set var=!var:%%~w=***!
  12.         echo,!var:*:=!
  13.         EndLocal
  14.     )) >"%%f"
  15. )
  16. del .tmp
  17. echo 完成!按任意键退出...
  18. pause >nul
复制代码
1

评分人数

    • ik22: 乐于助人技术 + 1

TOP

回复 3楼 的帖子

谢谢  tmplinshi 版主..

TOP

返回列表