INI 配置文件

精选 INI 常用指令与核心速查备忘单,涵盖高频用法、配置参数与实用技巧。 本备忘单是用于理解和编写 INI 格式配置文件的高效速查指南。

#🚀 入门指引

#入门介绍

  • INI 是一种具有固定标准格式的文本配置文件
  • 基础组成元素为键名 (Key) 或属性 (Property)
  • 每个键由 名称 (Name)数值 (Value) 组成,中间用等号 (=) 分隔
  • 键名 (Key name) 显示在等号的 左侧
  • 等号 (=) 和分号 (;) 是 INI 格式的 保留关键字
  • INI 配置方式最初源自 MS-DOS 操作系统

目前已成为许多配置的非正式标准,其他操作系统可能使用 .conf.cfg 作为文件后缀名

#代码示例 (Example)

; 这里是注释行
[owner]
name=John Doe
organization=Acme Products

[database]
; 这里是数据库参数注释
server=192.0.2.42
port=143
file="acme payroll.dat"

[section.subsection]
foo = bar

#代码注释

分号注释 (;)

; 这是标准的注释文本,解析时会被忽略

井号注释 (#)

# 这是井号注释文本,⚠️ 仅部分解析器支持

行尾行内注释 (;,#) (非标准用法)

var = a ; 这是行内单行注释
foo = bar # 这是另一种行内单行注释

在某些严格解析器中,注释必须单独占用一行

#节区划分 (Sections)

  • 节区名称单独占用一行
  • 节区名称使用方括号 [] 包裹
  • 没有显式的 section 结束 分隔符标记
  • 结束于下一个 section 声明或文件末尾
  • 节区与属性名称通常不区分大小写
[section]
key1 = a
key2 = b

其效果等同于如下 JSON 结构 👇

{
  "section": {
    "key1": "a",
    "key2": "b"
  }
}

#嵌套结构 (部分解析器支持)

[section]
domain = qr.warpnav.com
[section.subsection]
foo = bar

其效果等同于如下 JSON 结构 👇

{
  "section": {
    "domain": "qr.warpnav.com"
    "subsection": {
      "foo": "bar"
    }
  }
}

嵌套至上一节区(简写语法)

[section]
domain = qr.warpnav.com
[.subsection]
foo = bar

#转义字符 (Escape character)

转义序列 转义含义与字符解释
\\ \ (单个反斜杠,转义反斜杠本身)
\' 单引号 (Apostrophe)
\" 双引号 (Double quotes)
\0 空字符 (Null character)
\a 响铃/警告音 (Alert/Sound)
\b 退格符 (Backspace) 或部分应用中的 Bell 字符
\t 制表符 (Tab)
\r 回车符 (Carriage return)
\n 换行符 (Newline)
\; 分号 (Semicolon)
\# 井号 (Number sign)
\= 等号 (Equal sign)
\: 冒号 (Colon)
\x???? 对应 ???? 4位十六进制码点的 Unicode 字符

#数组语法 (Array)

[section]
domain = qr.warpnav.com
array[]=first value
array[]=second value

其效果等同于如下 JSON 结构 👇

{
  "section": {
    "domain": "qr.warpnav.com",
    "array": ["first value", "second value"]
  }
}

#解析器库 (Interpreter)

#🔗 参考资源