#ErrorStdOut
把任何阻止脚本运行的语法错误发送到 stderr (标准错误) 而不显示一个错误弹窗.
#ErrorStdOut
[AHK_L 42+]: 错误输出到 stderr (标准错误) 而不是 stdout (标准输出). 命令行和高级编辑器往往会同时显示这些信息. 这种不太规范的情况仅影响 v1.1.19.01 之前的版本.
这个指令可以让类似 Textpad, SciTE, Crimson 和 EditPlus 这些高级编辑器在语法错误发生时跳到有问题的行. 添加 #ErrorStdOut 指令到每个脚本中通常比使用 命令行开关 /ErrorStdOut 更方便. (请参阅命令行开关页面较远的后面了解设置说明)
尽管语法错误会被发送到标准输出 (stdout), 但是它们不会直接显示在命令提示符中. 不过, 可以通过管道或重定向捕获这样的输出. 例如:
"C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "My Script.ahk" |more "C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "My Script.ahk" >"Syntax-Error Log.txt"
您还可以通过管道输出把信息直接传输到剪贴板,只需下载 cb.zip (4 KB) 然后参考下面的例子:
"C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "My Script.ahk" |cb.exe
注意: 2>&1
由于 stderr 直接重定向到 stdout, 所以当 2>Filename
时重定向将仅输出到文件.
高级编辑器的设置说明:
EditPlus:
在菜单栏选择 Tools (工具) > Configure User Tools. (配置用户工具)
点击按钮: Add Tool (增加工具) > Program (程序)
Menu Text (菜单名称): 可随意
Command (命令) (修改为您的 AutoHotkey.exe 路径): C:\Program Files\AutoHotkey\AutoHotkey.exe
Argument (参数): /ErrorStdOut "$(FilePath)"
Initial directory (初始文件夹): $(FileDir)
Capture output (捕获输出): Yes
TextPad:
在菜单栏选择 Configure > Preferences (配置 > 参数).
展开 Tools (工具) 菜单.
点击 Add 按钮然后选择 "Program" (程序).
复制并粘贴 (修改为您的 cmd.exe 路径): C:\Windows\System32\cmd.exe -- 然后点击 OK.
三击列表框中新添加的项 (cmd.exe) 并将其重命名为您选择的自定义名称 (如 Launch Script).
点击 Apply (应用).
从左侧树列表中选择新增的项,然后填写下列信息:
Command (应该已经填好): cmd.exe (或者是它的完整路径)
Parameters (修改为您的 AutoHotkey.exe 路径): /c ""C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "$File""
初始目录: $FileDir
选择下列框:
1) Run minimized (最小化运行); 2) Capture output (捕获输出).
点击 OK 之后新添加的项就应该已经出现在 Tools 菜单中了.
相关
FileAppend (因为它也可以发送文本到 stdout)
示例
#ErrorStdOut