# #Requires

如果不符合版本要求, 则显示错误并退出.

    #Requires Requirement

## 参数

Requirement

  如果以 "AutoHotkey" 开头, 后面是空格或制表符, 那么后面应该是一个版本字符串, 可选前缀 "v". 如果 A_AhkVersion 被认为是兼容的, 那么脚本的加载就会继续, 不会出现错误. 例如, 一个需要 v1.1.33 版本的脚本也可以在 v1.1.33.01 和 v1.1.34 上运行, 但不能在 v2.0 上运行.

  否则, 将显示一个错误信息并退出程序.

## 错误消息

如果需要不同版本的 AutoHotkey, 信息包括 A_AhkVersion:

    This script requires %Requirement%, but you have v%A_AhkVersion%.

如果需求没有被识别, 消息格式如下:

    This script requires %Requirement%.

如果脚本启动时使用的 AutoHotkey 版本不支持这个指令, 错误信息如下:

    Line Text: #Requires %Requirement%
    Error: This line does not contain a recognized action.

## 备注

如果脚本使用了在早期版本中不可用的语法或函数, 使用这条指令可以确保错误信息显示未满足的要求, 而不是显示任意的语法错误. 这不能用 `if (A_AhkVersion <= "1.1.33")` 这样的指令来做, 因为在脚本的其他地方出现语法错误会使脚本无法执行.

当分享一个脚本或在网上发布代码时, 使用这个指令可以让任何发现代码的人很容易地识别出它是为哪个版本的 AutoHotkey 准备的.

其他程序或脚本可以出于各种目的检查这个指令. 例如, 一个启动脚本可能会用它来决定启动哪个 AutoHotkey 可执行文件, 而脚本编辑器或相关工具可能会用它来决定如何解释或突出显示脚本文件.

版本字符串是以一系列点分隔的部分进行比较, 后面的连字符和预发布标识符是可选的.

- 数值部分是以数字来比较的. 例如, v1.01 = v1.1, 但 a20 > a112.
- 在相同的位置上, 数值部分总是被认为小于非数字部分.
- 任何缺失的点定界部分都假定为零. 例如, v1.1.33-alpha 等同于 v1.1.33.00-alpha.0.
- 非数字部分按字母顺序比较, 并区分大小写.
- 预发布版本被认为比标准版本低. 例如, `#Requires AutoHotkey v2` 的脚本将不能在 v2.0-a112 上运行. 要允许预发布版本, 请在后缀中加入一个连字符. 例如: `v2.0-`.
- 任何以 "+" 开头的后缀将被忽略.

尾部的 "+" 足以向读者表明可以接受更晚的版本, 但不是必须的.

和其他指令一样, #Requires 不能有条件地执行.

## 相关

#ErrorStdOut, VerCompare

## 示例

使脚本仅在 v2.0 上运行, 包括测试版.

    #Requires AutoHotkey v2.0-a
    MsgBox "This script will run only on v2.0, including alpha releases."

dftg