跳到主要内容

INI 覆盖层合并工具

API reference

将 INI 配置与一个或两个覆盖文件合并,与部署时按默认值、环境和本地设置逐层叠加的方式相同。被覆盖的值会就地编辑,因此基础文件的注释、空行、键的顺序和缩进都会保留;变更报告会准确显示哪些键被新增、修改或保持不变。

输入

默认配置。此文件的注释、顺序和格式会保留在合并结果中。

应用在基础文件之上,只有它指定的键会被修改。

最后应用,因此优先于第一个覆盖文件。若只需合并两个文件,请留空。

选项

写在键所在行的行内注释始终保留,即使关闭此选项。

输出

合并后的 INI
 
变更
节键基础值合并值变更类型
No data yet
这对您有帮助吗?

使用此工具的更多方式

REST API

curl -X POST https://api.iotools.cloud/v1/tool/ini-overlay-merger \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "baseIni": "; Application defaults — keep this file in versi…",
    "overlayIni": "; production.ini\ndebug = true\n\n[server]\nhost = 0…",
    "secondOverlayIni": "",
    "newKeys": "add",
    "preserveComments": "true",
    "ignoreCase": "",
    "assignment": "spaced"
  }'

替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。

让 AI 代理执行

Use the IOTools `ini-overlay-merger` tool (INI Overlay Merger) on this input:

YOUR_INPUT_HERE

将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。

嵌入式小组件

<iframe
  src="https://iotools.cloud/embed/ini-overlay-merger/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="INI 覆盖层合并工具 — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。

每次 API/MCP 调用费用5 积分起
需要更多积分?查看定价

也可通过

使用指南

这个工具做什么

大多数基于 INI 的项目都会有一份默认配置文件,以及每个环境一份的小文件,例如 app.ini 加 production.ini,或者 defaults.ini → staging.ini → local.ini。手动合并这些层级很容易出错:可能漏掉某个键,或者基础文件中的旧值一直保留到了生产环境。

这个工具会把一个覆盖文件应用到基础 INI 上,显示合并后的完整文件,并附带一份报告,说明哪些键被新增、修改或保持不变。

大多数合并工具会把两个文件都解析为对象,再重新序列化输出,这样会悄悄丢掉所有注释,并打乱键的顺序。本工具不这样做。它会在基础文件中原地修改值,因此注释、空行、键的顺序、缩进,甚至被覆盖那一行末尾的行内注释,合并后都会保留。输出就是一份可以直接提交的文件。

使用方法

  1. 将基础 INI(你的默认配置)粘贴到第一个输入框。
  2. 将覆盖文件(即特定环境的文件)粘贴到第二个输入框。
  3. 可选:再添加一个覆盖文件。它最后应用,因此优先于第一个覆盖文件。顺序为 默认 → 环境 → 本地,与实际部署时的解析顺序一致。
  4. 查看变更表格,然后复制或下载合并后的 INI。

所有操作都在你的浏览器中完成,不会上传任何文件。

设置

  • 仅存在于覆盖文件中的键:添加(默认)会把基础文件从未声明过的键追加到其所属节的末尾,必要时在文件末尾创建该节。忽略则只合并基础文件已经声明的键。当基础文件是权威的配置结构,并且不希望覆盖文件中的拼写错误悄悄新增配置项时,请选择此项。
  • 保留基础文件的注释行和空行:默认开启。关闭后可得到紧凑、无注释的结果文件。写在键所在行的行内注释无论如何都会保留。
  • 节名和键名不区分大小写:有些 INI 解析器会忽略大小写,有些则不会。当覆盖文件写的是 [Server],而基础文件写的是 [server],并且你希望它们被视为同一节时,请开启此项。
  • 新增键的赋值格式:为新增的行选择 key = value 或 key=value。已存在的行会保留基础文件中原有的间距。

变更报告

覆盖文件涉及的每个键都会出现在表格中,包括其基础值、合并值,以及以下四种判定之一:

  • Changed:覆盖文件把它替换成了不同的值。
  • Unchanged:覆盖文件设置的值与基础文件中已有的值相同。这通常说明覆盖文件已经过时,可以删除该行。
  • Added:该键只存在于覆盖文件中,已被追加。
  • Ignored:该键只存在于覆盖文件中,且选择了忽略,因此它不会出现在输出中。

这四种判定在表格中以英文显示,与上面的名称一致。

那 [section.subsection] 这样的节名呢?

带点的节标题会被视为一个完整的字面节名,并在各文件之间逐个键进行匹配。对于合并来说,这是最安全的理解方式,因为它不会改变任何结构。如果你希望将带点的标题展开为嵌套对象,请将结果通过 INI 转 JSON 转换器 处理。

能合并三个以上的文件吗?

先合并前三个文件,然后将结果重新粘贴到基础文件输入框中,再添加下一个覆盖文件。如果你想比较两份配置而不是合并它们,文本对比 可以提供逐行的差异对比。

iniconfigmergeoverlayenvironmentdeployment

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。