我是批处理脚本的新手,但我想用它来自动编辑.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脚本中包含代码来更新这些条目。
你们可以帮助我吗?
答案 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
上述内容应该可行 - 嗯,确实可以处理您提供的数据,但如果没有更全面的.ini文件列表,则无法做到非常积极。
最后的fc
只是比较之前和之后的版本进行验证。我所拥有的关键点是具有分配给它的值的项目是否可以包括空格。如果是这样的话,将需要进行调整......
答案 1 :(得分:0)
谢谢大家,但我正在使用查找和替换。更容易