标题: 批处理怎样实现修改配置文件最后行内容?
[打印本页]
作者: qwertl
时间: 2009-12-14 10:23
标题: 批处理怎样实现修改配置文件最后行内容?
有个conf.ini文件的最后几行是如下这样的格式:
......
IP 0=192.168.3.8
IP 1=192.168.0.2
IP 2=192.168.1.3
怎样用批处理仅修改最后一行的IP参数?
现要将最后行IP 2=192.168.1.3改成IP 2=192.168.2.8用批处理该怎样实现??
可否自动删最后一行?再 echo IP 2=192.168.2.8>>conf.ini
但批处理要怎样每次将最后一行删掉呢?
作者: HAT
时间: 2009-12-14 14:25
sed -i '$ s/.*/IP 2=192.168.2.8/g' conf.ini
作者: qwertl
时间: 2009-12-15 20:16
@echo off
for /f "tokens=15 skip=1" %%i in ('ipconfig ^| find /i "ip address"') do set ip2=%%i
sed -i '$ s/.*/IP 2=%ip2%/g' c:\wd\config.ini
这样解决了修改末行的参数。
谢谢hat!现又碰到个难题了。
现有个配置文件cf.ini,要修改其中间一行的参数,想通过批理获取的ip附加到
HostRestrictions=12.13.2.16\/192.168.91.5这行后面,每次增加个新IP需用\/隔开。其它内容都不变。
配置文件内容格式如下,(HostRestrictions字符串在整个文件中两次存在此,HostRestrictionsAllow)
......
HostRestrictions=12.13.2.16\/192.168.91.5
HostRestrictionsAllow=1
......
Last edited by qwertl on 2009-12-15 at 20:22 ]
作者: HAT
时间: 2009-12-15 21:17
标题: Re 3楼
set ip=192.168.0.1
sed -i "s/\(HostRestrictions=.*\)/\1\\\/%ip%/g" cf.ini
作者: qwertl
时间: 2010-1-5 20:26
谢谢hat.
conf.ini文件的最后几行是如下这样的格式:
......
IP 0=192.168.3.8
IP 1=192.168.0.2
IP 2=192.168.1.3
怎样将conf.ini文件的最后一行的值192.168.1.3定义为一个变量值,然后与如下的语句获取的%ip2%对比
for /f "tokens=15 skip=1" %%i in ('ipconfig ^| find /i "ip address"') do set ip2=%%i
对比如果与%ip2%值相同则批处理结束,如果相比IP值不同则执行如下语句后结束:
sed -i '$ s/.*/IP 2=%ip2%/g' c:\app\conf.ini
net stop "servername"
ping 127.0.0.1 -n 50 >nul
net start "servername"
Last edited by qwertl on 2010-1-6 at 18:29 ]
作者: qwertl
时间: 2010-1-6 18:30
人呢?去忙什么了??
