Board logo

标题: 任何批处理替换文本指定行【已解决】 [打印本页]

作者: jzsgyml     时间: 2010-2-23 10:05    标题: 任何批处理替换文本指定行【已解决】

某文件夹下有很多配置文件,大体内容差不多的,现在修改每个文件中的一个值,但是这个值在文本中多次存在,如何替换?

以下是每个文件的内容格式:
[a]
...
run=TRUE

...
run=TRUE
[C]
...
run=TRUE

现在要将[C]下面的 run=TRUE 替换为 run=FALSE
而且该文件夹所有文件都要替换,该文件夹文件命名为465647.INI。都是数字命名

[ Last edited by jzsgyml on 2010-2-26 at 15:04 ]
作者: sysplay     时间: 2010-2-25 21:20

@echo off
setlocal enabledelayedexpansion
for %%i in (*.ini) do (
        set flag=0
        for /f %%j in (%%i) do (
                set str=%%j
                if /i "!str!"=="[C]" set flag=1
                if "!flag!"=="1" if /i "!str!"=="run=TRUE" (
                                                set "str=run=FALSE"
                                                set flag=0
                                                )
                echo !str!>>_%%i
        )
rename %%i %%i.txt
rename _%%i %%i
)