INI 格式配置文件基础知识

前言

INI是英文“初始化”(initialization)的缩写,它是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中,这种配置文件的文件扩展名多为INI。INI文件被用来对操作系统或特定程序初始化或进行参数设置。现在已成为许多配置的非正式标准,其它操作系统可能使用 .conf 或 .cfg 作为后缀

本文章包含INI 格式配置文件内容、结构和语法等内容。


基本语法

  • 基本元素是键或属性
  • 每个键由名称和值构成,等号 (=) 分隔
  • 键名称显示在等号的左侧
  • 等号和分号是保留字符
; 这里是注释
[owner]
name=Hello World
organization=Hello World Products

[database]
; 这里是注释
server=192.168.0.11
port=443
file="test.txt"

1. 节(section)

节用方括号括起来,单独占一行,例如:[owner]

  1. 名称单独出现在一行中
  2. 名称在方括号 [ 和 ] 中
  3. 没有明确的 section 结束分隔符
  4. 在下一个 section 声明处或文件末尾处结束
  5. 部分和属性名称不区分大小写

2. 键(key)

键(key)又名属性(property),单独占一行用等号连接键名和键值,例如:name=Hello World

3. 注释(comment)

注释使用英文分号(;)开头,单独占一行。在分号后面的文字,直到该行结尾都全部为注释,例如:; 这里是注释

4. 嵌套(部分解析器支持)

[section]
domain = helloworld.abc.com

[section.subsection]
foo = bar

与下面 JSON 大致相同:

{
  "section": {
    "domain": "helloworld.abc.com"
    "subsection": {
      "foo": "bar"
    }
  }
}

5. 数组

[section]
domain = helloworld.abc.com
array[]=first value
array[]=second value

与下面 JSON 大致相同:

{
  "section": {
    "domain": "helloworld.abc.com",
    "array": [
      "first value", "second value"
    ]
  }
}

6. 转义字符

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/423446.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第16章-DNS

目录 1. 域名 1.1 产生背景 1.2 概述 1.3 域名的树形层次化结构 2. DNS 2.1 概述 2.2 工作机制 3. DNS查询模式 3.1 递归查询: 3.2 迭代查询: 4. 相关知识点 4.1 集中式DNS 4.2 国内通用DNS 4.3 配置DNS代理 1. 域名 1.1 产生背景 ① IP…

SQL窗口函数, 测试题

第一题 create table user_score (logday date, -- 考试时间 userid VARCHAR(20), -- 考试用户 score int); -- 考试成绩Insert into user_score values (2019-10-20,11111,85) ,(2019-10-20,22222,83) ,(2019-10-20,33333,86) ,(2019-10-21,11111,87) ,(2019-10-2…

蓝桥杯(3.2)

1209. 带分数 import java.io.*;public class Main {static BufferedReader br new BufferedReader(new InputStreamReader(System.in));static PrintWriter pw new PrintWriter(new OutputStreamWriter(System.out));static final int N 10;static int n, cnt;static int[…

Pytorch学习 day02(加载数据、数据集类)

加载数据 * Dataset提供一种方式:来获取数据及其label,给数据进行编号 * Dataloader为神经网络提供不同的数据形式 Dataset的组织形式有很多种,例如: 将label放在文件夹名上,如下: #Dateset # --train #…

10分钟帮您快速理解InfluxDB中的核心概念

InfluxDB是目前时序数据库 (TSDB)最优秀的产品,时序数据库是一种设计和优化的数据库,用于注册和存储始终与特定时间点相关联或使用时间戳的数据。时序数据其实就是在不同时间点收集并按时间排序的数据。对于刚刚接触时序数据库的同学来说,好多…

Matlab偏微分方程拟合 | 源码分享 | 视频教程

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法,并提供所有案例完整源码;2.…

利用css实现常见图形

1、正圆形 给正方形盒子设置圆角属性为宽高的50%。 div {width: 100px;height: 100px;background-color: plum;border-radius: 50%; } 2、胶囊形 给长方形盒子设置圆角属性为盒子高度的50%。 div {width: 200px;height: 100px;background-color: plum;border-radius: 50px…

一个最简单的Three.js的井筒三维云图渲染示例

在Three.js中实现井筒的三维云图渲染,需要先准备井筒的属性数据,例如井筒的几何结构、温度分布、压力分布等。然后,利用Three.js创建对应的三维模型并将属性数据应用到模型上,最终呈现出井筒的三维云图效果。下面是一个简单的示例…

(四)优化函数,学习速率与反向传播算法--九五小庞

多层感知器 梯度下降算法 梯度的输出向量表明了在每个位置损失函数增长最快的方向,可将它视为表示了在函数的每个位置向那个方向移动函数值可以增长。 曲线对应于损失函数。点表示权值的当前值,即现在所在的位置。梯度用箭头表示,表明为了增…

Kubernetes/k8s的核心概念

一、什么是 Kubernetes Kubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。在一些常见的资料中也会看到“ks”这个词,也就是“k8s”&#xff…

3分钟,学会一个测试员必懂 Lambda 小知识!

今天再来给大家介绍下函数式接口和方法引用。 函数式接口 问:Lambda 表达式的类型是什么? 答:函数式接口 问:函数式接口是什么? 答:只包含一个抽象方法的接口,称为函数式接口 (…

关于synchronized介绍

synchronized的特性 1. 乐观锁/悲观锁自适应,开始时是乐观锁,如果锁冲突频繁,就转换为悲观锁 2.轻量级/重量级锁自适应 开始是轻量级锁实现,如果锁被持有的时间较长,就转换成重量级锁 3.自旋/挂起等待锁自适应 4.不是读写锁 5.非公平锁 6,可重入锁 synchronized的使用 1&#…

如何使用 CrewAI 构建协作型 AI Agents

一、前言 AI Agents 的开发是当前软件创新领域的热点。随着大语言模型 (LLM) 的不断进步,预计 AI 智能体与现有软件系统的融合将出现爆发式增长。借助 AI 智能体,我们可以通过一些简单的语音或手势命令,就能完成以往需要手动操作应用程序才能…

【YOLO v5 v7 v8 小目标改进】RFB:组合不同大小的卷积核和扩张卷积来模拟人类视觉感受野的多尺度特性

RFB:组合不同大小的卷积核和扩张卷积来模拟人类视觉感受野的多尺度特性 提出背景RFB 原理空间感受野结构RFB-Net 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改 提出背景 当前表现最好的目标检测器依赖于深层CNN骨干网络,如ResNet-101和Inception&am…

Vue3 条件渲染 v-show

v-show 指令&#xff1a;用于控制元素的显示或隐藏。 执行条件&#xff1a;当条件为 false 时&#xff0c;会添加一个 display:none 属性将元素隐藏。 应用场景&#xff1a;适用于显示隐藏切换频率较高的场景。 <div v-show"数据">内容</div> 基础用法…

LeetCode 热题 100 | 图论(一)

目录 1 200. 岛屿数量 2 994. 腐烂的橘子 2.1 智障遍历法 2.2 仿层序遍历法 菜鸟做题&#xff0c;语言是 C 1 200. 岛屿数量 解题思路&#xff1a; 遍历二维数组&#xff0c;寻找 “1”&#xff08;若找到则岛屿数量 1&#xff09;寻找与当前 “1” 直接或间接连接在…

langchain学习笔记(七)

RunnablePassthrough: Passing data through | &#x1f99c;️&#x1f517; Langchain 1、RunnablePassthrough可以在不改变或添加额外键的情况下传递输入。通常和RunnableParallel结合使用去分配数值给到字典的新键 两种方式调用RunnablePassthrough &#xff08;1&#…

MySQL进阶:全局锁、表级锁、行级锁总结

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;MySQL进阶&#xff1a;MySQL事务、并发事务问题及隔离级别 &#x1f4da;订阅专栏&#xff1a;MySQL进阶 希望文章对你们有所帮助…

Linux学习笔记:进程的终止和等待

进程终止和等待 进程终止进程退出场景进程常见退出方式_exit()退出exit()退出return退出exit()与_exit()的不同之处 进程的等待什么是进程等待?为什么要进行进程等待如何进行等待wait方式:waitpid方式 进程终止 进程退出场景 一般来讲,进程的退出场景有三种: 代码运行完毕,…

Unity RectTransform·屏幕坐标转换

RectTransform转屏幕坐标 分两种情况 Canvas渲染模式为Overlay时&#xff0c;使用此方式 public Rect GetScreenCoordinatesOfCorners(RectTransform rt) {var worldCorners new Vector3[4];rt.GetWorldCorners(worldCorners);var result new Rect(worldCorners[0].x,world…