标题: [文件操作] 批处理怎样修改文件中指定位置处的值? [打印本页]
作者: hacker85 时间: 2012-3-11 17:28 标题: 批处理怎样修改文件中指定位置处的值?
目的:
就是在teknogods.ini文件中加入一行文字:
ExternalIP=外网IP
代码:- @echo off
- cd J:\BAT\第三方程序
- down http://www.symental.com/ip/ ip
- for /f %%a in (ip) do set ip=%%a
- echo ExternalIP=%ip%>>P:\teknogods.ini
复制代码
teknogods.ini文件原来内容:
[Settings]
Name=hacker
FOV=65
ID=2C512CB3
[Network]
NetworkInterface=255
NetworkInterfaceList=[0 = 192.168.56.1; 1 = 192.168.1.101; 255 (default) = ANY IP]
这是文件的内容
期待效果:
[Settings]
Name=hacker
FOV=65
ID=2C512CB3
[Network]
NetworkInterface=255
NetworkInterfaceList=[0 = 192.168.56.1; 1 = 192.168.1.101; 255 (default) = ANY IP]
ExternalIP=外网IP
提示:
1、用上面的代码已经可以实现加入这个“ExternalIP=外网IP”信息了,但是……如果第一次运行这个P程序的时候是
完全没有错误的,但是当我们第二次运行这个程序的时候,就会发现在ini文件中有两个ExternalIP=外网IP,而
ini文件中只能有一个这样的信息存在。
2、NetworkInterfaceList=[0 = 192.168.56.1; 1 = 192.168.1.101; 255 (default) = ANY IP]
对于上面的红色标部分,很可能因为路由下面的设备较多,而不一定被分配到这个IP,所以这里如何实现自动获取IP呢?本机的。
作者: find 时间: 2012-3-11 17:43
- @echo off
- cd J:\BAT\第三方程序
- down http://www.symental.com/ip/ ip
- for /f %%a in (ip) do set ip=%%a
- findstr "^ExternalIP=" P:\teknogods.ini || echo ExternalIP=%ip%>>P:\teknogods.ini
复制代码
作者: hacker85 时间: 2012-3-11 17:56
本帖最后由 hacker85 于 2012-3-11 18:01 编辑
回复 2# find
findstr "^ExternalIP=" P:\teknogods.ini || echo ExternalIP=%ip%>>P:\teknogods.ini
这个红色的字符在这里的意思是?
而且这段代码做出来的效果也是不对的,还是“运行一次程序就会多出一个ExternalIP”
只允许有一个,也就是说从第一次运行过P程序后,就只是用其来更改等号后面的内容了。
并且关于network部分的动态问题没有解决,可否再行修改一二呢?
作者: find 时间: 2012-3-11 18:30
回复 3# hacker85
http://www.bathome.net/thread-24-1-1.html
作者: apang 时间: 2012-3-11 18:49
回复 3# hacker85
^表示一行的开头,findstr再加 /i 参数试试。
ipconfig /all 可以得到本机IP地址。
作者: hacker85 时间: 2012-3-11 20:53
回复 5# apang
加了/i参数也不行,还是多行。
作者: terse 时间: 2012-3-11 23:18
- >~tem.te findstr /ivb "ExternalIP=" "teknogods.ini"
- for /f %%a in (ip) do >>tem.te echo ExternalIP=%%a
- move ~tem.te teknogods.ini
复制代码
作者: hacker85 时间: 2012-3-16 14:04
>~tem.te ------->这个是什么呢?一个临时的中转文件?
那么它的前后语句都是哪些呢?还是说开头就这样写就可以?
代码一开头就来一个定向输入这个可以吗?我水平目前还不够,呵呵。
作者: find 时间: 2012-3-16 18:56
回复 8# hacker85
等同于:- findstr /ivb "ExternalIP=" "teknogods.ini" >~tem.te
复制代码
作者: hacker85 时间: 2012-3-17 15:16
回复 9# find
噢 ,原来是这样,谢谢。我回头会去测试代码 的。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |