如何使用批处理脚本编辑.ini文件中的多个文本行

时间:2014-09-03 02:29:45

标签: batch-file

我是批处理脚本的新手,但我想用它来自动编辑.ini文件中的以下值

Example.ini(请注意,这是一个配置文件,在这两个条目之前,之后和之间有很多其他条目。)

[Log]
Enabled = 0   

[Support]
Line1 = ÿ
Lines = 1
SenderAddress = Report@example.com  

更新的值应如下所示:([Log] Enabled = 1& [Support] MailSenderAddress应变为空白)

[Log]
Enabled = 1

[Support]
Line1 = ÿ
Lines = 1
SenderAddress =  

尽管如此,我想在主.bat脚本中包含代码来更新这些条目。

你们可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL
SET "logsection="
SET "supportsection="
(
 FOR /f "tokens=1*delims=" %%a IN (q25635303.txt) DO (
  FOR /f "tokens=1*delims== " %%b IN ("%%a") DO (
   SET repro=Y
   IF "%%c"=="" (
    SET "logsection="
    SET "supportsection="
    IF /i "%%b"=="[Log]" SET logsection=y
    IF /i "%%b"=="[Support]" SET supportsection=y
   ) ELSE (
    IF DEFINED logsection IF "%%b"=="Enabled" (SET "repro="&ECHO(Enabled = 1)
    IF DEFINED supportsection IF "%%b"=="SenderAddress" (SET "repro="&ECHO(SenderAddress =)
   )
   IF DEFINED repro ECHO(%%a
  )
 )
)>newfile.txt

FC q25635303.txt newfile.txt

GOTO :EOF

我使用了一个名为q25635303.txt的文件,其中包含我的测试数据。 生成newfile.txt

但是,Begorrah,但很难单独使用一个小目标部分,事实确实如此。

上述内容应该可行 - 嗯,确实可以处理您提供的数据,但如果没有更全面的.ini文件列表,则无法做到非常积极。

最后的fc只是比较之前和之后的版本进行验证。我所拥有的关键点是具有分配给它的值的项目是否可以包括空格。如果是这样的话,将需要进行调整......

答案 1 :(得分:0)

谢谢大家,但我正在使用查找和替换。更容易