鉴于此 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
正如 compo 所指出的:在 .ini 文件中,注释以
;
为前缀。
选项 1:因此,如果您只想过滤掉以
[
和 ;
开头的行,您可以使用 findstr
:for /f "delims=" %%G in ('type sample.ini ^| findstr /v "^[;\[]"') do set %%G
作为解释,它在以下正则表达式的开头搜索不包含
/v
的行。
正则表达式匹配 ^
后跟由 [something]
;
或 [
表示的八位(女巫是正则表达式语法的一部分,因此需要用 \[
来阻止。
选项 2:您也可以通过以下方式直接搜索
=
:
('find "=" 0^