标题: [文本处理] 批处理怎么替换文件中特定内容为文件名? [打印本页]
作者: liumanggege 时间: 2011-3-3 17:17 标题: 批处理怎么替换文件中特定内容为文件名?
比如文件夹下面有
index1.html,index2.html,index3.html,index4.html,index5.html..........很多个文件
每个文件里面都有字符串“woshiyigehaohaizi”
想把多个文件里红色的部分“yige”用每个文件的文件名index1,index2,index3,index4.........替换,怎么写批处理文件。
谢谢,请高手帮忙处理。
[ 本帖最后由 liumanggege 于 2011-3-3 23:08 编辑 ]
作者: liumanggege 时间: 2011-3-3 17:34
您好,怎么用??
俺 不大会,能帮写下吧?非常感谢
作者: plp626 时间: 2011-3-3 17:43
回流氓妹妹:
用sed很方便,下载sed.exe放在windows目录下,打开cmd,输入- sed "s/woshiyigehaohaizi/woshiindex8haohaizi/g" yourfile.html
复制代码
sed在我网盘里找
作者: liumanggege 时间: 2011-3-3 17:56
谢谢。我找找。非常感谢。。。。。
作者: liumanggege 时间: 2011-3-3 23:13
请再看看,可以吗??谢谢
作者: Commander 时间: 2011-3-3 23:17
- @echo off
- for %%a in (*.html) do (
- sed -i "s/woshiyigehaohaizi/woshi%%ahaohaizi/g" "%%a"
- )
复制代码
作者: liumanggege 时间: 2011-3-3 23:48
原帖由 Commander 于 2011-3-3 23:17 发表
@echo off
for %%a in (*.html) do (
sed -i "s/woshiyigehaohaizi/woshi%%ahaohaizi/g" "%%a"
)
请帮忙再看下,好像没有变化,生成了另一个文件,但名字不一样。
作者: liumanggege 时间: 2011-3-4 00:06
另外生成的文件名是sedDOSSU这样的文件。我想让文件名不变行不行呢?
作者: hu2xu4 时间: 2011-3-4 00:08 标题: 回复 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")
这个不用外部工具,看看是否可以。
作者: caruko 时间: 2011-3-4 00:22
- @echo off&setlocal enabledelayedexpansion
- for /r %%i in (*.html) do (
- for /f "delims=*" %%a in (%%i) do (
- set "str=%%a"
- set "str=!str:woshiyigehaohaizi=woshi%%~nihaohaizi!"
- >>newfile echo,!str!
- )
- move /y newfile "%%i"
- )
复制代码
作者: Batcher 时间: 2011-3-4 00:26 标题: 回复 7楼 的帖子
试试4.1.4版本的sed
http://bbs.bathome.net/thread-1114-1-1.html
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |