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

[文本处理] BAT批处理怎样替换文本ServerName=192.168.0.201为其他?

我想把 dbsrv.ini 这个文件 里面的  ServerName=192.168.0.201  这个字段 全部替换成 ServerName=192.168.0.211 ,我有N多dbsrv.ini 的文件要替换  用批处理怎么弄,请高手指点一下,小弟不胜感激

回复 1# hfstar
  1. @echo off
  2. for /f "tokens=*" %%i in (dbsrv.ini) do (
  3. set str=%%i
  4. setlocal enabledelayedexpansion
  5. echo !str:201=211!>>1.txt
  6. endlocal)
复制代码
学习中

TOP

我不想单独生成一个文件  而是 在 原文件里面 改。。能不能用这个批处理实现呢

TOP

  1. sed -i "s/ServerName=192\.168\.0\.201/ServerName=192.168.0.211/g" dbsrv.ini
复制代码

TOP

回复 4# DAIC


    多谢啦

TOP

回复 3# hfstar
  1. @echo off
  2. for /f "tokens=*" %%i in (dbsrv.ini) do (
  3. set str=%%i
  4. setlocal enabledelayedexpansion
  5. echo !str:201=211!>>1.txt
  6. endlocal)
  7. del /q dbsrv.ini
  8. ren 1.txt dbsrv.ini
复制代码
学习中

TOP

回复 6# battab


最后的两个命令可以合并成一个move命令
  1. @echo off
  2. (for /f "tokens=*" %%i in (dbsrv.ini) do (
  3.     set str=%%i
  4.     setlocal enabledelayedexpansion
  5.     echo,!str:201=211!
  6.     endlocal
  7. ))>1.txt
  8. move /y 1.txt dbsrv.ini
复制代码

TOP

假如 文件里面 有多行 要 处理替换呢?

TOP

回复 6# battab


    谢谢,假如 文件里面 有多行 要 处理呢?

TOP

回复 9# hfstar


    上面给出的代码应该可以处理配置文件里每行出现的”201“吧。
学习中

TOP

回复 10# battab


    嗯,谢谢

TOP

回复 6# battab


    请教这里"tokens=*" 意思是不是读取文本中每一行给变量 %%i
另外 echo !str:201=211!>>1.txt   这句怎么解释?谢谢

TOP

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

TOP

返回列表