2022-10-25 17:03:30 +08:00
|
|
|
|
INI 备忘清单
|
|
|
|
|
====
|
|
|
|
|
|
|
|
|
|
这是理解和编写 INI 格式配置文件的快速参考备忘单,此清单包含配置的内容,结构和语法等内容。
|
|
|
|
|
|
|
|
|
|
入门
|
|
|
|
|
------
|
|
|
|
|
|
|
|
|
|
### 介绍
|
|
|
|
|
|
|
|
|
|
INI 是一种固定标准格式的配置文件,INI配置方法来自 MS-DOS 操作系统
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
; 这里是注释
|
|
|
|
|
[owner]
|
|
|
|
|
name=John Doe
|
|
|
|
|
organization=Acme Products
|
|
|
|
|
|
|
|
|
|
[database]
|
|
|
|
|
; 这里是注释
|
|
|
|
|
server=192.0.2.42
|
|
|
|
|
port=143
|
|
|
|
|
file="acme payroll.dat"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
现在已成为许多配置的非正式标准,其它操作系统可能使用 `.conf` 或 `.cfg` 作为后缀
|
|
|
|
|
|
|
|
|
|
### 稳定的特性
|
|
|
|
|
|
|
|
|
|
- 基本元素是键或属性
|
|
|
|
|
- 每个键由`名称`和`值`构成,等号 (=) 分隔
|
|
|
|
|
- `键名称`显示在等号的`左侧`
|
|
|
|
|
- `等号`和`分号`是`保留`字符
|
|
|
|
|
<!--rehype:className=style-round-->
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
name = value
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
与下面👇 JSON 大致相同
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
"name": "value"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 注释
|
|
|
|
|
|
|
|
|
|
注释 (`;`)
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
; 这里是注释文本,将被忽略
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
注释 (`#`)
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
# 这里是注释文本,⚠️ 部分编译器支持
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
一行之后的注释 (`;`,`#`) _(不标准)_
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
var = a ; 这是一个内联注释
|
|
|
|
|
foo = bar # 这是另一个内联注释
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
在某些情况下注释必须单独出现在行上
|
|
|
|
|
|
|
|
|
|
### 部分(Sections)
|
|
|
|
|
|
|
|
|
|
- 名称单独出现在一行中
|
|
|
|
|
- 名称在方括号 `[` 和 `]` 中
|
|
|
|
|
- 没有明确的 `section 结束` 分隔符
|
|
|
|
|
- 在下一个 `section` 声明处或文件末尾处结束
|
|
|
|
|
- 部分和属性名称不区分大小写
|
|
|
|
|
<!--rehype:className=style-round-->
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
[section]
|
|
|
|
|
key1 = a
|
|
|
|
|
key2 = b
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
与下面👇 `JSON` 大致相同
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"section": {
|
|
|
|
|
"key1": "a",
|
|
|
|
|
"key2": "b"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 嵌套(部分解析器支持)
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
[section]
|
|
|
|
|
domain = jaywcjlove.github.io
|
|
|
|
|
|
|
|
|
|
[section.subsection]
|
|
|
|
|
foo = bar
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
与下面👇 `JSON` 大致相同
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
"section": {
|
|
|
|
|
"domain": "jaywcjlove.github.io"
|
|
|
|
|
"subsection": {
|
|
|
|
|
"foo": "bar"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
嵌套到上一节(简写)
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
[section]
|
|
|
|
|
domain = jaywcjlove.github.io
|
|
|
|
|
[.subsection]
|
|
|
|
|
foo = bar
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 转义字符
|
|
|
|
|
|
|
|
|
|
序列 | 意思
|
|
|
|
|
:- | :-
|
|
|
|
|
`\\` | \ (单个反斜杠,转义转义字符)
|
|
|
|
|
`\'` | 撇号
|
|
|
|
|
`\"` | 双引号
|
|
|
|
|
`\0` | 空字符
|
|
|
|
|
`\a` | 铃声/警报/声音
|
|
|
|
|
`\b` | 退格键,某些应用程序的[贝尔字符](https://en.wikipedia.org/wiki/Bell_character)
|
|
|
|
|
`\t` | 制表符
|
|
|
|
|
`\r` | 回车
|
|
|
|
|
`\n` | 换行
|
|
|
|
|
`\;` | 分号
|
|
|
|
|
`\#` | 数字符号
|
|
|
|
|
`\=` | 等号
|
|
|
|
|
`\:` | 冒号
|
|
|
|
|
`\x????` | 十六进制代码点的 Unicode 字符对应于 ????
|
|
|
|
|
|
2022-10-25 17:32:34 +08:00
|
|
|
|
### 数组
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
[section]
|
|
|
|
|
domain = jaywcjlove.github.io
|
|
|
|
|
array[]=first value
|
|
|
|
|
array[]=second value
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
与下面👇 `JSON` 大致相同
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
{
|
|
|
|
|
"section": {
|
|
|
|
|
"domain": "jaywcjlove.github.io",
|
|
|
|
|
"array": [
|
|
|
|
|
"first value", "second value"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 解释器
|
|
|
|
|
|
|
|
|
|
- [@go-ini/ini](https://github.com/go-ini/ini) _(golang)_
|
|
|
|
|
- [@npm/ini](https://www.npmjs.com/package/ini) _(nodejs)_
|
|
|
|
|
- [@zonyitoo/rust-ini](https://github.com/zonyitoo/rust-inii) _(rust)_
|
|
|
|
|
- [@rxi/ini](https://www.npmjs.com/package/ini) _(c)_
|
|
|
|
|
- [@pulzed/mINI](https://github.com/pulzed/mINI) _(c++)_
|
|
|
|
|
- [@rickyah/ini-parser](https://github.com/rickyah/ini-parser) _(c#)_
|
|
|
|
|
- [@Enichan/Ini](https://github.com/Enichan/Ini) _(c#)_
|
|
|
|
|
|
2022-10-25 17:03:30 +08:00
|
|
|
|
另见
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
- [INI 文件配置](https://en.wikipedia.org/wiki/INI_file) _(wikipedia.org)_
|
|
|
|
|
- [YAML 格式配置文件备忘清单](./yaml.md) _(jaywcjlove.github.io)_
|
2022-11-11 01:51:54 +08:00
|
|
|
|
- [TOML 格式配置文件备忘清单](./toml.md) _(jaywcjlove.github.io)_
|