스크립트의 실행을 막는 구문 에러를 대화상자에 보여주지 않고 표준에러(stderr)로 보냅니다.
#ErrorStdOut Encoding
#ErrorStdOut UTF-8
encodes error messages as UTF-8 before sending them to stderr. Whatever program is capturing the output must support UTF-8, and in some cases may need to be configured to expect it. If omitted, it defaults to CP0.[AHK_L 42+]: 에러는 표준출력(stdout)이 아니라 표준에러(stderr)에 씌여집니다. 명령 프롬프트와 멋진 편집기는 보통 둘 다 보여줍니다. 이 변경은 v1.1.19.01 이전까지 문서화되어 있지 않았습니다.
이 덕분에 TextPad, SciTE, Crimson, 그리고 EditPlus와 같은 멋진 편집기들은 구문 에러가 일어날 때 문제의 줄로 바로 점프해 갈 수 있습니다. #ErrorStdOut 지시어는 스크립트마다 추가해도 좋을 것입니다. 보통 오토핫키 스크립트를 기동할 때 편집기를 명령 줄 스위치 /ErrorStdOut를 사용하도록 설정하는 것이 더 좋습니다 (설정에 관한 지시 사항은 아래를 참조하십시오).
오토핫키는 콘솔 프로그램이 아니기 때문에, 에러는 명령 프롬프트에 직접 나타나지 않습니다. This can be worked around by 1) [v1.1.33+] compiling the script with the Ahk2Exe ConsoleApp directive, or 2) capturing the script's output via piping or redirection. 예를 들어:
"C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "My Script.ahk" 2>&1 |more "C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "My Script.ahk" 2>"Syntax-Error Log.txt"
You can also pipe the output directly to the clipboard by using the operating system's built-in clip command (for Windows XP and lower, download and use cb.exe instead). 예를 들어:
"C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "My Script.ahk" 2>&1 |clip
주의: 2>&1
는 stderr를 stdout로 방향전환되도록 만듭니다. 반면에 2>Filename
는 stderr만 파일로 방향전환합니다.
다른 지시어처럼, #ErrorStdOut는 조건적으로 실행할 수 없습니다.
EditPlus:
C:\Program Files\AutoHotkey\AutoHotkey.exe
/ErrorStdOut "$(FilePath)"
$(FileDir)
TextPad:
C:\Windows\System32\cmd.exe
-- 다음 OK를 누릅니다.cmd.exe
(또는 전체 경로를 지정)/c ""C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "$File""
$FileDir
FileAppend (because it can also send text to stderr or stdout)