批处理文件 - 忽略注释读取 ini 文件

问题描述 投票:0回答:1

鉴于此 sample.ini 文件:

[this is a comment1]
Parameter1=sun

[this is a comment2]
Parameter2=is

[this is a comment3]
Parameter3=shining

我写了这个批处理来处理 sample.ini 并将每个条目设置为环境变量

如何从 for 循环中过滤掉 ini 注释?
因为它会抛出错误:

C:\temp>set [this is a comment1]
Environment variable [this is a comment1] not defined

这是批处理文件
只有一个 for 循环遍历 INI 并分配给 %%G 然后将其设置为环境变量

REM @ECHO OFF

for /f "delims=" %%G in (sample.ini) do set %%G

PAUSE
windows batch-file
1个回答
0
投票

正如 compo 所指出的:在 .ini 文件中,注释以

;
为前缀。

选项 1:因此,如果您只想过滤掉以

[
;
开头的行,您可以使用
findstr
:
for /f "delims=" %%G in ('type sample.ini ^| findstr /v "^[;\[]"') do set %%G

作为解释,它在以下正则表达式的开头搜索不包含

/v
的行。 正则表达式匹配
^
后跟由
[something]
;
[
表示的八位(女巫是正则表达式语法的一部分,因此需要用
\[
来阻止。

选项 2:您也可以通过以下方式直接搜索

=

('find "=" 0^NUL') 设置 %%G

© www.soinside.com 2019 - 2024. All rights reserved.