我可以让 _Assert 写入控制台而不是消息框吗?

Can I make _Assert write to console instead of a message box?

我正在 AutoIt 中编写脚本来测试 windows 应用程序,我正在使用 _Assert 函数来验证某些操作。

在文档中我发现有一个参数可以说明如果断言失败脚本是否应该结束,这很好,因为在某些情况下我希望脚本继续,但不幸的是它仍然被暂停消息框。

我能否以某种方式覆盖 _Assert 函数以仅在某些断言失败时打印到控制台,以便脚本可以在没有用户交互的情况下继续?

无法使用 _Assert() 实现所需的行为。但是,_Assert() 可以 调整 来执行此操作(将 MsgBox() 替换为 ConsoleWrite()):

Func _AssertCustom($sCondition, $bExit = True, $nCode = 0x7FFFFFFF, $sLine = @ScriptLineNumber, Const $iCurERR = @error, Const $iCurEXT = @extended)
    Local $bCondition = Execute($sCondition)
    If Not $bCondition Then
        ConsoleWrite("Assertion Failed (Line " & $sLine & "): " & $sCondition & @CRLF)
        If $bExit Then Exit $nCode
    EndIf
    Return SetError($iCurERR, $iCurEXT, $bCondition)
EndFunc

最好声明为新函数(不要更改 Debug.au3)。