Board logo

标题: [文本处理] 批处理如何从ini文本中查找出第一个/首个含有指定字符串的行并在其下插入一行内容? [打印本页]

作者: cxmzlxb    时间: 2016-9-8 00:01     标题: 批处理如何从ini文本中查找出第一个/首个含有指定字符串的行并在其下插入一行内容?

本帖最后由 pcl_test 于 2016-9-8 11:06 编辑

文本查找替换
我想在1.ini中的第一个 [System] 后面插入一行,enabled=1,用批处理如何实现

1.ini 中可能会存在多个 [System]例
[System]
isture=0

[ini]
isenabled=1

[System]
ture=1

改后希望是这样
[System]
enabled=1
isture=0

[ini]
isenabled=1

[System]
ture=1
作者: pcl_test    时间: 2016-9-8 00:23

  1. mshta http://bathome.net/s/hta "type('1.ini').replace(/\[System\]/,'$&\r\nenabled=1')"
复制代码

作者: cxmzlxb    时间: 2016-9-8 00:33

批处理不能实现吗?
只是用mshta  打开了而已,没有实现保存!
作者: cxmzlxb    时间: 2016-9-8 00:33

回复 2# pcl_test


   谢谢!
批处理不能实现吗?
只是用mshta  打开了而已,没有实现保存!
作者: codegay    时间: 2016-9-8 00:46

你这INI根本不合法。
正常INI里不能存在两个相同的节点。
作者: codegay    时间: 2016-9-8 00:53

  1. #python ini 练习
  2. #2016年9月8日 00:10:54 codegay
  3. from configparser import ConfigParser
  4. ini = ConfigParser()
  5. f=ini.read("test.ini")
  6. ini.set("System",'enable',"1")
  7. ini.write(open("test.ini","w"))
复制代码

作者: codegay    时间: 2016-9-8 01:03

【vbs】vbs写ini文件
http://www.cnblogs.com/ahdung/p/3904528.html
作者: happy886rr    时间: 2016-9-8 09:54

  1. sed -i ":T;$!{N;bT};s/\[System\]/&\r\nenabled=1/" 1.ini
复制代码

作者: WHY    时间: 2016-9-8 13:12

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('findstr /n .* 1.txt') do (
  4.     set "s=%%i" & set "s=!s:*:=!"
  5.     echo;!s!
  6.     if "!s!" == "[System]" if not defined a (set a=1&echo;enabled=1)
  7. )
  8. pause
复制代码

作者: WHY    时间: 2016-9-8 13:13

  1. gawk "1;{if($0~/^\[System]$/ && !a){a=1; print \"enabled=1\"}}" 1.txt
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2