ErrorLevel

这是表示一些命令执行成功与否的内置变量(有些命令不会改变 ErrorLevel 的值). 值为 0 时通常表示成功, 而其他值一般表示失败. 您也可以自己设置 ErrorLevel 的值.

特别有意义的是 RunWait 会把 ErrorLevel 设置为它所运行程序的退出代码. 大多数程序在成功完成时会产生退出代码零.

每个线程会保持它自己的 ErrorLevel 的值, 这意味着如果当前线程被其他线程中断, 那么当原始线程恢复时它仍会拥有它原来的 ErrorLevel 值, 而不是由中断线程设置的 ErrorLevel 值.

注意: 由于一些命令会设置大于 1 的 ErrorLevel 值, 所以最好不要检查 ErrorLevel 是否大于 1, 而是检查它是否等于零.

下面的列表包含了设置 ErrorLevel 的所有命令, 函数和 GUI/Control 事件, 包括可能的 ErrorLevel 值:

语言元素 ErrorLevel 值
ClipWait0, 1
Control0, 1
ControlClick0, 1
ControlFocus0, 1
ControlGet0, 1
ControlGetFocus0, 1
ControlGetText0, 1
ControlMove0, 1
ControlSend / ControlSendRaw0, 1
ControlSetText0, 1
DllCall()0, -1, -2, -3, -4, n, An
Drive0, 1
DriveGet0, 1
EnvSet0, 1
EnvUpdate0, 1
FileAppend0, 1
FileCopy0, n
FileCopyDir0, 1
FileCreateDir0, 1
FileCreateShortcut0, 1
FileDelete0, n
FileGetAttrib0, 1
FileGetShortcut0, 1
FileGetSize0, 1
FileGetTime0, 1
FileGetVersion0, 1
FileInstall0, 1
FileMove0, n
FileMoveDir0, 1
FileRead0, 1
FileReadLine0, 1
FileRecycle0, 1
FileRecycleEmpty0, 1
FileRemoveDir0, 1
FileSelectFile0, 1
FileSelectFolder0, 1
FileSetAttrib0, n
FileSetTime0, 1
GroupActivate0, 1
Gui: GuiSize event0, 1, 2
Gui: GuiDropFiles event0, n
GuiControl0, 1
GuiControlGet0, 1
Gui control: Link click event字符串
Gui control: Custom event0, n
Gui control: ListView item change event"SsFfCc" 的子集
Hotkey0, 1, 2, 3, 4, 5, 6, 98, 99
ImageSearch0, 1, 2
IniDelete0, 1
IniWrite0, 1
Input0, 1, NewInput, Max, Timeout, Match, EndKey:Name
InputBox0, 1, 2
KeyWait0, 1
Menu0, 1
PixelGetColor0, 1
PixelSearch0, 1, 2
PostMessage0, 1
Process0, PID
RegDelete0, 1
RegExMatch()0, 字符串, -n
RegExReplace()0, 字符串, -n
RegRead0, 1
RegWrite0, 1
Run0, ERROR
RunWaitn, ERROR
SendMessageFAIL, n
SetWorkingDir0, 1
Sort: U option0, n
SoundGet0, 字符串
SoundGetWaveVolume0, 1
SoundPlay0, 1
SoundSet0, 字符串
SoundSetWaveVolume0, 1
StatusBarGetText0, 1
StatusBarWait0, 1, 2
StringGetPos0, 1
StringReplace0, 1, n
UrlDownloadToFile0, 1
WinGetText0, 1
WinMenuSelectItem0, 1
WinSet Style/ExStyle/Region0, 1
WinWait0, 1
WinWaitActive / WinWaitNotActive0, 1
WinWaitClose0, 1

示例

最多等待 1 秒, 直到 MyWindow 存在. 如果 WinWait 超时, ErrorLevel 设置为 1, 否则为 0.

WinWait, MyWindow,, 1
if ErrorLevel   ; 即既不是空值, 也不是零.
    MsgBox, The window does not exist.
else
    MsgBox, The window exists.