我需要一个批处理文件来比较两行不同的文件。
CONFIG1(TRUE / FALSE)
CONFIG2(TRUE / FALSE)
CONFIGFOCUS,99999,
CONFIG2(TRUE / FLASE)
CONFIG2(TRUE / FALSE)
CONFIGFOCUS,999999,
所以我想做的是一个批处理文件
检查许多文件夹的每个INI文件,并进行比较
FILE1 'CONFIGFOCUS'
的行,并将其与配置进行比较
FILE2 'CONFIGFOCUS'
。我想检查IF CONFIGFOCUS =='99999',
将其更改为'999999'。对于不同文件夹中的每个INI文件。这可行吗?
如果是的话,你能解释一下吗? (我是批处理文件的初学者,我想
了解如何做到这一点)
答案 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"