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

[文本处理] [已解决]批处理如何替换文本中某一行的内容?

[复制链接]
发表于 2012-3-21 02:31:58 | 显示全部楼层 |阅读模式
现有win.ini文件如下:
[pmsstartup.exe]
serverConfig=http://10.141.183.114:8080/config.pmssd.xml  

http://10.141.183.115:8080/config.pmssd.xml
installPath=c:\program files\pms
installPath_1=e:\我的文档\桌面\新建文件夹
serverConfig_1=http://10.141.183.116:8080/config.pmssd.xml
[DMS]
runpath=C:\Program Files\PMS\bin
[山东电力集团公司PMS系统]
LastLogin=popo
pwd=+

想把“[山东电力集团公司PMS系统]”行下面的一行,替换为LastLogin=zl,请问用批处理如何做到?
注:该win.ini文件根据系统安装软件的不同,会发生变化,故不能用指定行序号来确定LastLogin这一行的位置。但其上一行是确定的名称,可通过找到“[山东电力集团公司PMS系统]”行找到该行。
   LastLogin这一行记录的是最后一个登录的用户名,会随时发生变化,我想运行批处理后,改成我自己的用户名zl。
请教各位大神、大侠、大哥、大姐们,跪谢!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2012-3-21 02:34:17 | 显示全部楼层
从8点学到现在,都没搞出来,看在这份上,高手给个答案吧
发表于 2012-3-21 05:13:16 | 显示全部楼层
  1. @echo off
  2. (for /f "delims=" %%a in (win.ini) do (
  3.    if defined t (
  4.       set t=
  5.       echo LastLogin=zl
  6.    )else echo;%%a
  7.    if %%a==[山东电力集团公司PMS系统] set t=1
  8. ))>tmp.ini
复制代码
或者判断当前行是否为 LastLogin=xxx :
  1. @echo off
  2. (for /f "delims=" %%a in (win.ini) do (
  3.    for /f "delims==" %%b in ("%%a") do (
  4.       if %%b==LastLogin (
  5.          echo LastLogin=zl
  6.       ) else echo;%%a
  7.    )
  8. ))>tmp.ini
复制代码
如果要覆盖原文件,在脚本末尾加一句:
  1. move /y tmp.ini win.ini
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2012-3-21 20:19:24 | 显示全部楼层
  1. sed -i "/\[山东电力集团公司PMS系统\]/{N; s/\n.*/\nLastLogin=zl/}" win.ini
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-3-21 22:17:27 | 显示全部楼层
回复 3# CrLf


    感谢版主大大,太好了,可以回去跟同事装一把了,呵呵。
 楼主| 发表于 2012-3-21 22:17:58 | 显示全部楼层
回复 4# find


    感谢你的回帖。谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 21:12 , Processed in 0.018541 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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