# IniRead

从标准 ini 格式文件中读取一个值, 段或段名列表.

    IniRead, OutputVar, Filename, Section, Key , Default
    IniRead, OutputVarSection, Filename, Section
    IniRead, OutputVarSectionNames, Filename

## 参数

OutputVar

  存放返回值的变量名. 如果无法返回值, 此变量将被设置成 Default 参数所指定的值(在下文列出).

OutputVarSection

  [AHK_L 57+]: 省略 Key 参数时会读取整段的值. 仅返回该段的前 65,533 个字符, 省略注释和空行.

OutputVarSectionNames

  [AHK_L 57+]: 省略 Key 和 Section 参数时会返回一个以换行符(``n`) 分隔的段名列表.

Filename

  ini 文件名, 如果未指定绝对路径, 则假定在 %A_WorkingDir% 中.

Section

  ini 文件中的段名, 它是包含在方括号中的标题短语(在此参数中不需要加方括号).

Key

  ini 文件中的键名.

Default

  当没有找到请求的键时保存到 OutputVar 中的值. 如果省略, 此参数默认为单词 ERROR. 要存储空值(空字符串), 请指定 %A_Space%.

  [AHK_L 57+]: 省略 Key 时此参数无意义.

## 错误处理

此命令 不会 改变 ErrorLevel. 如果遇到问题, OutputVar 将被设置为如上所述的 Default 值.

## 备注

操作系统会自动忽略获取字符串中的前导和尾随空格/tab. 为避免此情况, 请将字符串括在单引号或双引号中. 最外层的单引号或双引号会被忽略, 但引号内的任何空格都会保留下来.

超过 65535 个字符的值可能会产生不一致的结果.

标准的 ini 文件看起来像这样:

    [SectionName]
    Key=Value

Unicode: IniRead 和 IniWrite 依靠外部函数 GetPrivateProfileString 和 WritePrivateProfileString 来读取和写入值. 这些函数仅支持 UTF-16 编码的 Unicode 文件; 其他所有文件都被认为使用系统默认的 ANSI 代码页.

## 相关

IniDelete, IniWrite, RegRead, 文件读取循环, FileRead

## 示例

从标准格式的 .ini 文件中读取位于 section2 的键的值, 并将其存储在 OutputVar.

    IniRead, OutputVar, C:\Temp\myfile.ini, section2, key
    MsgBox, The value is %OutputVar%.

dftg