INI 知识点速查

这是理解和编写 INI 格式配置文件的快速参考备忘单,此清单包含配置的内容,结构和语法等内容。

入门

介绍

INI 是一种固定标准格式的配置文件,INI 配置方法来自 MS-DOS 操作系统

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

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

现在已成为许多配置的非正式标准,其它操作系统可能使用 .conf.cfg 作为后缀

稳定的特性

  • 基本元素是键或属性
  • 每个键由名称构成,等号 (=) 分隔
  • 键名称显示在等号的左侧
  • 等号分号保留字符
name = value

与下面👇 JSON 大致相同

{
  "name": "value"
}

注释

注释 (;)

; 这里是注释文本,将被忽略

注释 (#)

# 这里是注释文本,⚠️ 部分编译器支持

一行之后的注释 (;,#) (不标准)

var = a       ; 这是一个内联注释
foo = bar     # 这是另一个内联注释

在某些情况下注释必须单独出现在行上

部分(Sections)

  • 名称单独出现在一行中
  • 名称在方括号 []
  • 没有明确的 section 结束 分隔符
  • 在下一个 section 声明处或文件末尾处结束
  • 部分和属性名称不区分大小写
[section]
key1 = a
key2 = b

与下面👇 JSON 大致相同

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

嵌套(部分解析器支持)

[section]
domain = jaywcjlove.github.io

[section.subsection]
foo = bar

与下面👇 JSON 大致相同

{
  "section": {
    "domain": "jaywcjlove.github.io"
    "subsection": {
      "foo": "bar"
    }
  }
}

嵌套到上一节(简写)

[section]
domain = jaywcjlove.github.io
[.subsection]
foo = bar

转义字符

序列意思
\\\ (单个反斜杠,转义转义字符)
\'撇号
\"双引号
\0空字符
\a铃声/警报/声音
\b退格键,某些应用程序的贝尔字符
\t制表符
\r回车
\n换行
\;分号
\#数字符号
\=等号
\:冒号
\x????十六进制代码点的 Unicode 字符对应于 ????

数组

[section]
domain = jaywcjlove.github.io
array[]=first value
array[]=second value

与下面👇 JSON 大致相同

{
  "section": {
    "domain": "jaywcjlove.github.io",
    "array": [
      "first value", "second value"
    ]
  }
}

解释器

另见