# #Requires

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

    #Requires Requirement

## 参数

Requirement

  如果不是以单词 "AutoHotkey" 开头, 则显示错误消息并退出程序. 这将保证清晰, 并为将来的使用保留指令. AutoHotkey 的其他分支可能支持其他名称.

  否则, 单词 "AutoHotkey" 后面应该跟下列任意组合, 并用空格或制表符分隔:

  - 一个可选的字母 "v" 后面跟着一个版本号. A_AhkVersion 必须大于或等于此版本, 但小于下一个主版本.
  - `<`, `<=`, `>`, `>=` 或 `=` 中的一个, 后面紧跟着可选的字母 "v" 和版本号. 例如, `>=2-rc <2` 允许 v2 的候选版本, 但不允许最终版本.
  - 以下单词之一, 用于限制可运行脚本的可执行文件(EXE) 的类型: "32-bit", "64-bit".

## 错误消息

显示的消息取决于解释该指令的 AutoHotkey 的版本.

对于 v2, AutoHotkey 的路径, 版本和构建总是显示在错误消息中.

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

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

## 备注

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

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

其他程序或脚本可以出于各种目的检查这个指令. 例如, 安装 AutoHotkey v2 自带的启动器可能会用它来决定启动哪个 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."

使脚本仅在 v2.0(包括预发布版本) 上运行.

    #Requires AutoHotkey >=2.0- <2.1

使脚本仅在 64 位解释器(EXE) 下运行.

    #Requires AutoHotkey 64-bit

使脚本仅在 64 位解释器(EXE) 2.0-rc 版本或更高版本下运行.

    #Requires AutoHotkey v2.0-rc.2 64-bit

dftg