找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33957|回复: 12

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

[复制链接]
发表于 2014-1-14 09:45:59 | 显示全部楼层 |阅读模式
我想把 dbsrv.ini 这个文件 里面的  ServerName=192.168.0.201  这个字段 全部替换成 ServerName=192.168.0.211 ,我有N多dbsrv.ini 的文件要替换  用批处理怎么弄,请高手指点一下,小弟不胜感激
发表于 2014-1-14 12:40:59 | 显示全部楼层
回复 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)
复制代码
 楼主| 发表于 2014-1-14 14:35:04 | 显示全部楼层
我不想单独生成一个文件  而是 在 原文件里面 改。。能不能用这个批处理实现呢
发表于 2014-1-14 15:05:57 | 显示全部楼层
  1. sed -i "s/ServerName=192\.168\.0\.201/ServerName=192.168.0.211/g" dbsrv.ini
复制代码
 楼主| 发表于 2014-1-14 15:19:09 | 显示全部楼层
回复 4# DAIC


    多谢啦
发表于 2014-1-14 15:25:02 | 显示全部楼层
回复 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
复制代码
发表于 2014-1-14 15:27:35 | 显示全部楼层
回复 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
复制代码
 楼主| 发表于 2014-1-14 15:29:41 | 显示全部楼层
假如 文件里面 有多行 要 处理替换呢?
 楼主| 发表于 2014-1-14 15:29:59 | 显示全部楼层
回复 6# battab


    谢谢,假如 文件里面 有多行 要 处理呢?
发表于 2014-1-14 15:51:06 | 显示全部楼层
回复 9# hfstar


    上面给出的代码应该可以处理配置文件里每行出现的”201“吧。
 楼主| 发表于 2014-1-14 18:06:48 | 显示全部楼层
回复 10# battab


    嗯,谢谢
发表于 2014-1-17 00:27:47 | 显示全部楼层
回复 6# battab


    请教这里"tokens=*" 意思是不是读取文本中每一行给变量 %%i
另外 echo !str:201=211!>>1.txt   这句怎么解释?谢谢
发表于 2014-1-17 08:21:42 | 显示全部楼层
回复 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 00:05 , Processed in 0.018704 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表