
标题: [文本处理] 求教,批处理替换指定行的部分文本内容 [打印本页]
作者: 花开花落 时间: 2021-5-19 17:12 标题: 求教,批处理替换指定行的部分文本内容
写一个bat,给C:\Program Files\abc\config.ini文件中第3行“WSNADDR=”后的内容赋值为://10.177.102.13:5070,//10.177.102.14:5070
也就是配置第一个“WSNADDR=”,请教高手怎么写
/*配置文件*/config.ini
[app1]
WSNADDR=//192.168.0.1:5070,//192.168.0.2:5070
[app2]
WSNADDR=//10.1.1.204:8000
[app3]
WSNADDR=//192.168.0.101:5080
作者: xp3000 时间: 2021-5-19 17:54
- //&@cd "C:\Program Files\abc"&cls&dir /a-d/b "config.ini"|cscript -nologo -e:jscript "%~f0"&pause&exit
-
- function reStr(file){
- var f = fso.opentextfile(file, 1);
- str = f.ReadAll().replace(/^(\[app3\]\r\nWSNADDR=).*/mg, '$1//10.177.102.13:5070,//10.177.102.14:5070');
- f.Close();
- var f = fso.opentextfile(file, 2);
- f.Write(str);
- }
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- while(!WScript.StdIn.AtEndOfStream)reStr(WScript.StdIn.ReadLine());
复制代码

作者: qixiaobin0715 时间: 2021-5-19 22:04
本帖最后由 qixiaobin0715 于 2021-5-20 10:02 编辑
- @echo off
- setlocal enabledelayedexpansion
- (for /f "usebackq delims=" %%a in ("C:\Program Files\abc\config.ini") do (
- if "!str!"=="[app1]" (
- echo,WSNADDR=//10.177.102.13:5070,//10.177.102.14:5070
- ) else (
- echo,%%a
- )
- set str=%%a
- ))>a.temp
- move "a.temp" "C:\Program Files\abc\config.ini"
- pause
复制代码
慎用,会覆盖源文件,测试后再用。
作者: newswan 时间: 2021-5-19 22:25
- @echo off
- setlocal enabledelayedexpansion
-
- set r=0
- for /f "delims=" %%a in (config.ini) do (
- set /a r+=1
- if "!r!"=="2" (
- echo WSNADDR=//10.177.102.13:5070,//10.177.102.14:5070
- ) else (
- echo %%a
- )
- )
复制代码
作者: qixiaobin0715 时间: 2021-5-20 09:36
回复 1# 花开花落
这样有个好处,可以选择。如果要配置第2或3个WSNADDR的值,可将代码第4行中的1换成2或3即可。
作者: 花开花落 时间: 2021-5-20 09:54
回复 3# qixiaobin0715
谢谢,还想请问更新原有文件C:\Program Files\abc\config.ini怎么写呢?
作者: qixiaobin0715 时间: 2021-5-20 10:03
回复 6# 花开花落
已修改
作者: 花开花落 时间: 2021-5-20 10:15
回复 7# qixiaobin0715
学习了,多谢多谢
作者: xp3000 时间: 2021-5-20 12:41
看题没注意,修改的是app3行,把app3修改app1就行了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |