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

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

[复制链接]
发表于 2016-9-8 00:01:43 | 显示全部楼层 |阅读模式
本帖最后由 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

评分

参与人数 1PB -4 收起 理由
pcl_test -4 勿发笼统的标题

查看全部评分

发表于 2016-9-8 00:23:30 | 显示全部楼层
  1. mshta http://bathome.net/s/hta "type('1.ini').replace(/\[System\]/,'$&\r\nenabled=1')"
复制代码
 楼主| 发表于 2016-9-8 00:33:03 | 显示全部楼层
批处理不能实现吗?
只是用mshta  打开了而已,没有实现保存!
 楼主| 发表于 2016-9-8 00:33:29 | 显示全部楼层
回复 2# pcl_test


   谢谢!
批处理不能实现吗?
只是用mshta  打开了而已,没有实现保存!
发表于 2016-9-8 00:46:05 | 显示全部楼层
你这INI根本不合法。
正常INI里不能存在两个相同的节点。
发表于 2016-9-8 00:53:16 | 显示全部楼层
  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"))
复制代码
发表于 2016-9-8 01:03:06 | 显示全部楼层
发表于 2016-9-8 09:54:19 | 显示全部楼层
  1. sed -i ":T;$!{N;bT};s/\[System\]/&\r\nenabled=1/" 1.ini
复制代码
发表于 2016-9-8 13:12:27 | 显示全部楼层
  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
复制代码
发表于 2016-9-8 13:13:11 | 显示全部楼层
  1. gawk "1;{if($0~/^\[System]$/ && !a){a=1; print "enabled=1"}}" 1.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 07:26 , Processed in 0.027256 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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