1

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

文件1:

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

文件2:

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

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

4

2 回答 2

1

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

repl.bat这使用从 - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855调用的帮助程序批处理文件

放在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
)
于 2013-10-04T08:52:39.343 回答
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 用于 Windows

于 2013-10-03T18:25:43.907 回答