标题: [文本处理] BAT批处理怎样替换文本ServerName=192.168.0.201为其他? [打印本页]
作者: hfstar 时间: 2014-1-14 09:45 标题: BAT批处理怎样替换文本ServerName=192.168.0.201为其他?
我想把 dbsrv.ini 这个文件 里面的 ServerName=192.168.0.201 这个字段 全部替换成 ServerName=192.168.0.211 ,我有N多dbsrv.ini 的文件要替换 用批处理怎么弄,请高手指点一下,小弟不胜感激
作者: battab 时间: 2014-1-14 12:40
回复 1# hfstar - @echo off
- for /f "tokens=*" %%i in (dbsrv.ini) do (
- set str=%%i
- setlocal enabledelayedexpansion
- echo !str:201=211!>>1.txt
- endlocal)
复制代码
作者: hfstar 时间: 2014-1-14 14:35
我不想单独生成一个文件 而是 在 原文件里面 改。。能不能用这个批处理实现呢
作者: DAIC 时间: 2014-1-14 15:05
- sed -i "s/ServerName=192\.168\.0\.201/ServerName=192.168.0.211/g" dbsrv.ini
复制代码
作者: hfstar 时间: 2014-1-14 15:19
回复 4# DAIC
多谢啦
作者: battab 时间: 2014-1-14 15:25
回复 3# hfstar - @echo off
- for /f "tokens=*" %%i in (dbsrv.ini) do (
- set str=%%i
- setlocal enabledelayedexpansion
- echo !str:201=211!>>1.txt
- endlocal)
- del /q dbsrv.ini
- ren 1.txt dbsrv.ini
复制代码
作者: DAIC 时间: 2014-1-14 15:27
回复 6# battab
最后的两个命令可以合并成一个move命令- @echo off
- (for /f "tokens=*" %%i in (dbsrv.ini) do (
- set str=%%i
- setlocal enabledelayedexpansion
- echo,!str:201=211!
- endlocal
- ))>1.txt
- move /y 1.txt dbsrv.ini
复制代码
作者: hfstar 时间: 2014-1-14 15:29
假如 文件里面 有多行 要 处理替换呢?
作者: hfstar 时间: 2014-1-14 15:29
回复 6# battab
谢谢,假如 文件里面 有多行 要 处理呢?
作者: battab 时间: 2014-1-14 15:51
回复 9# hfstar
上面给出的代码应该可以处理配置文件里每行出现的”201“吧。
作者: hfstar 时间: 2014-1-14 18:06
回复 10# battab
嗯,谢谢
作者: zaixinxiangnian 时间: 2014-1-17 00:27
回复 6# battab
请教这里"tokens=*" 意思是不是读取文本中每一行给变量 %%i
另外 echo !str:201=211!>>1.txt 这句怎么解释?谢谢
作者: Batcher 时间: 2014-1-17 08:21
回复 12# zaixinxiangnian
字符串替换,请看教程:
批处理set命令学习笔记
http://www.bathome.net/viewthread.php?tid=3774#pid23888
批处理set命令使用详解
http://www.bathome.net/thread-57-1-1.html
批处理命令set截取字符详解
http://www.bathome.net/thread-996-1-1.html
批处理命令set变量字符截取点点通
http://www.bathome.net/thread-40-1-1.html
批处理命令set截取字符练习工具
http://www.bathome.net/thread-1149-1-1.html
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |