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

[文本处理] 批处理怎么替换文件中特定内容为文件名?

比如文件夹下面有
index1.html,index2.html,index3.html,index4.html,index5.html..........很多个文件
每个文件里面都有字符串“woshiyigehaohaizi”
想把多个文件里红色的部分“yige”用每个文件的文件名index1,index2,index3,index4.........替换,怎么写批处理文件。
谢谢,请高手帮忙处理。

[ 本帖最后由 liumanggege 于 2011-3-3 23:08 编辑 ]

您好,怎么用??
俺 不大会,能帮写下吧?非常感谢

TOP

回流氓妹妹:



用sed很方便,下载sed.exe放在windows目录下,打开cmd,输入
  1. sed "s/woshiyigehaohaizi/woshiindex8haohaizi/g" yourfile.html
复制代码
sed在我网盘里找

TOP

谢谢。我找找。非常感谢。。。。。

TOP

请再看看,可以吗??谢谢

TOP

  1. @echo off
  2. for %%a in (*.html) do (
  3.     sed -i "s/woshiyigehaohaizi/woshi%%ahaohaizi/g" "%%a"
  4. )
复制代码

TOP

原帖由 Commander 于 2011-3-3 23:17 发表
@echo off
for %%a in (*.html) do (
    sed -i "s/woshiyigehaohaizi/woshi%%ahaohaizi/g" "%%a"
)

请帮忙再看下,好像没有变化,生成了另一个文件,但名字不一样。

TOP

另外生成的文件名是sedDOSSU这样的文件。我想让文件名不变行不行呢?

TOP

回复 1楼 的帖子

@echo off&setlocal enabledelayedexpansion
cls&echo Replacing,pleasewait
for /r %%a in (*.html)do (
for /f "tokens=1,* delims=:" %%b in ('findstr /n ".*" "%%a"')do (
set "var=%%c"
if "!var!" neq "" set "var=!var:yige=%%~na!"
>>O echo,!var!)
move O "%%a")

这个不用外部工具,看看是否可以。

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%i in (*.html) do (
  3.         for /f "delims=*" %%a in (%%i) do (
  4.                 set "str=%%a"
  5.                 set "str=!str:woshiyigehaohaizi=woshi%%~nihaohaizi!"
  6.                 >>newfile  echo,!str!
  7.         )
  8.         move /y newfile "%%i"
  9. )
复制代码

TOP

回复 7楼 的帖子

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表