如果需要,使用批处理文件比较和更改ini文件的行

时间:2013-10-03 17:49:47

标签: batch-file compare lines ini

我需要一个批处理文件来比较两行不同的文件。

FILE1:

CONFIG1(TRUE / FALSE)
CONFIG2(TRUE / FALSE)
CONFIGFOCUS,99999,

FILE2:

CONFIG2(TRUE / FLASE)
CONFIG2(TRUE / FALSE)
CONFIGFOCUS,999999,

所以我想做的是一个批处理文件 检查许多文件夹的每个INI文件,并进行比较 FILE1 'CONFIGFOCUS'的行,并将其与配置进行比较 FILE2 'CONFIGFOCUS'。我想检查IF CONFIGFOCUS =='99999', 将其更改为'999999'。对于不同文件夹中的每个INI文件。这可行吗? 如果是的话,你能解释一下吗? (我是批处理文件的初学者,我想 了解如何做到这一点)

2 个答案:

答案 0 :(得分:1)

要在文件树中将CONFIGFOCUS,99999,更改为CONFIGFOCUS,999999,,这应该有效:

这使用了来自 - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855

的名为repl.bat的帮助程序批处理文件

repl.bat放在与批处理文件相同的文件夹中,该文件位于INI文件树的主文件夹中。

@echo off
for /r %%a in (*.ini) do (
type "%%a" |repl.bat "CONFIGFOCUS,99999," "CONFIGFOCUS,999999," >"%%a.tmp"
move /y "%%a.tmp" "%%a" >nul
)

答案 1 :(得分:0)

@echo off &setlocal
set "startfolder=x:\inifiles"
:: change 'CONFIGFOCUS' from '99999' to '999999'
for /d /r "%startfolder%" %%a in (*) do sed -i.bak "/CONFIGFOCUS/Is/99999/999999/" "%%~a\*.ini"
:: list 'CONFIG1', 'CONFIG2' and 'CONFIGFOCUS' from all files to compare
for /d /r "%startfolder%" %%a in (*) do findstr /bic:"CONFIG1" /c:"CONFIG2" /c:"CONFIGFOCUS" "%%~a\*.ini"

sed for Windows