标题: [文本处理] 能否批量修改TXT文件里指定的文件里的一个或多个关键字? [打印本页]
作者: hz328 时间: 2011-1-15 18:47 标题: 能否批量修改TXT文件里指定的文件里的一个或多个关键字?
新人,搜遍了整个论坛了,也没找着,只看到类似问法没答案。
问题如下:
TXT文本1.txt里记载的是
d:\a\1.html //注释:此文件有关键字如:成人电影
d:\b\20.html //注释:此文件有关键字如:手机
d:\p\15.html //注释:此文件有关键字如:迷香
我想利用批处理读取到这个1.txt文本里的地址文件,
然后修改这里文件里头的某个或者多个关键字比如:成人电影=科幻电影
最终希望的结果就是:
d:\a\1.html
d:\b\20.html
d:\p\15.html
TXT文体里的文件里没有了指定的关键字。
希望高手指点。谢谢了。
作者: tmplinshi 时间: 2011-1-15 23:16
- @echo off
- for /f "tokens=*" %%f in (1.txt) do (
- findstr /n .* "%%f" >.tmp
- (for /f "tokens=*" %%a in (.tmp) do (
- set var=%%a
- SetLocal EnableDelayedExpansion
- set "var=!var:电影=科幻电影!"
- set "var=!var:关键字2=替换后的字符!"
- echo,!var:*:=!
- EndLocal
- )) >"%%f"
- )
-
- del .tmp
复制代码
[ 本帖最后由 tmplinshi 于 2011-1-15 23:18 编辑 ]
作者: batman 时间: 2011-1-16 13:08
我想应该首先建立一个文件名、关键字、替换内容间的对应关系,然后根据这一关系来进行批量替换和重写文件,代码如下,请楼主测试后使用:- @echo off&setlocal enabledelayedexpansion
- rem 建立对应关系
- set "\a\1.html=成人电影"&set "\b\20.html=手机"&set "\p\15.html=迷香"
- set "_\a\1.html=替换一"&set "_\b\20.html=替换二"&set "_\p\15.html=替换三"
- rem 核心代码
- for /f "delims=" %%a in ('dir /b /s d:\*.html') do (
- cd.>%%~dpatemp
- for /f "usebackq delims=" %%b in ("%%a") do (
- set "str=%%b"
- for %%c in (!%%~pnxa!) do (
- for %%d in (!_%%~pnxa!) do echo.!str:%%C=%%d!>>temp
- )
- )
- del /q "%%a"&ren "%%~dpatemp" %%~nxa
- )
- echo 搞定。。。&pause>nul
复制代码
[ 本帖最后由 batman 于 2011-1-16 13:10 编辑 ]
作者: hz328 时间: 2011-1-16 18:22 标题: 回复 3楼 的帖子
关键字多了就麻烦。
我从中发现了一点就是,应该文本1.TXT存放含有关键字的文件地址。文本2.TXT里就存放着要替换的关键字。
这样一来能否接合一齐来呢?
文本1内容: 文本2内容:
替换前 替换后
d:\a\1.html 成人电影;科幻电影
d:\b\20.html 手机;计算机
d:\p\15.html 迷香;香水
.... ....
.... ....
文本1的第一行就对应着文本2的第一行,
文本1的第二行就对应着文本2的第二行,
以此类推.
作者: hz328 时间: 2011-1-16 18:23 标题: 回复 2楼 的帖子
按你意思找不着这个。
>.tmp
作者: hanyeguxing 时间: 2011-1-16 18:59
- @echo off
- for /f "tokens=1,2* delims=|" %%a in ('more +13^<"%~f0"') do (
- (for /f "usebackq delims=" %%d in ("%%a") do (
- set "d=%%d"
- setlocal enableDelayedExpansion
- set "d=!d:%%b=%%c!"
- echo/!d!
- Endlocal
- ))>temp
- move temp "%%a"
- )
- exit
- :列表
- d:\a\1.html|成人电影|科幻电影
- d:\b\20.html|手机|计算机
- d:\p\15.html|迷香|香水
复制代码
fr.exe 下载地址:http://ishare.iask.sina.com.cn/f/7088512.html- @echo off
- for /f "tokens=1,2* delims=|" %%a in ('more +4^<"%~f0"') do fr.exe "%%a" /fic:"%%b" /t:"%%c"
- exit
- :列表
- d:\a\1.html|成人电影|科幻电影
- d:\b\20.html|手机|计算机
- d:\p\15.html|迷香|香水
复制代码
[ 本帖最后由 hanyeguxing 于 2011-1-16 19:24 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |