标题: [文本处理] 批处理怎样查找替换文本? [打印本页]
作者: xiaoxx 时间: 2008-4-26 15:31 标题: 批处理怎样查找替换文本?
假如有这样一个文件a.txt,内容如下:
测试替换hehe 代码hehehehe,123后面的内容都不要
测试hehe,hehehe,随便写的12345678
要求:1,hehe全按顺序替换为haha
2.123后面内容都不要,
期望运行批处理后文本内容变化为:
测试替换haha代码hahahaha,123
测试haha,hahahe,随便写的123
作者: 随风 时间: 2008-4-26 17:03
for没办法用多个字符窜作分隔符,所以变通一下
先把123替换为文本中没有的字符,比如#号。
另外:下次提问最好发在 代码咨询&讨论 区
:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- set var=%%a
- set var=!var:he=ha!
- set var=!var:123=#!
- for /f "delims=#" %%i in ("!var!") do echo %%i123
- )
- pause
复制代码
作者: namejm 时间: 2008-4-26 17:43
套用 随风 的思路,考虑特殊字符、带空行等极端情况,并且假定a.txt中没有出现#符号,但必须出现123字符串,给出一个较为完善的代码:- @echo off
- for /f "delims=" %%i in (a.txt) do (
- set "str=%%i"
- setlocal enabledelayedexpansion
- set "str=!str:*:=!"
- set "str=!str:hehe=haha!"
- set "str=!str:123=#!"
- for /f "delims=#" %%j in ("!str!") do echo.%%j123
- endlocal
- )
- pause
复制代码
作者: xiaoxx 时间: 2008-4-26 17:49
先谢了再看。
作者: czyceo 时间: 2019-7-26 11:21
谢了,再看
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |