#ErrorStdOut

스크립트의 실행을 막는 구문 에러를 대화상자에 보여주지 않고 표준에러(stderr)로 보냅니다.

#ErrorStdOut Encoding

매개변수

Encoding [v1.1.33+]
An encoding string specifying how to encode the output. For example, #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:

  1. 메뉴 바에서, 도구 > 사용자 도구 구성을 선택합니다.
  2. 다음 버튼을 누릅니다: 도구 > 프로그램
  3. 메뉴 텍스트: 여러분의 마음대로 설정합니다
  4. 명령어: C:\Program Files\AutoHotkey\AutoHotkey.exe
  5. 인자: /ErrorStdOut "$(FilePath)"
  6. 최초 디렉토리: $(FileDir)
  7. 출력 캡쳐: 네

TextPad:

  1. 메뉴 바에서, Configure > Preferences를 선택합니다.
  2. Tools 엔트리를 확대합니다.
  3. Add 버튼을 누르고 "Program"을 선택합니다.
  4. 복사해 붙여 넣습니다 (여러분의 경로에 맞게 조절하십시오): C:\Windows\System32\cmd.exe -- 다음 OK를 누릅니다.
  5. 리스트 박스에 새로 추가된 버튼을 세번 클릭합니다 (cmd.exe). 그리고 이름을 여러분 마음대로 바꿉니다 (예,. Launch Script).
  6. Apply를 누릅니다.
  7. 왼쪽 트리에서 새 항목을 선택하고 다음 정보를 입력합니다:
  8. Command (이미 채워져 있을 것입니다): cmd.exe (또는 전체 경로를 지정)
  9. Parameters (필요하면 여러분의 경로에 맞게 조절): /c ""C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "$File""
  10. Initial folder: $FileDir
  11. 다음 박스를 체크합니다: 1) Run minimized; 2) Capture output.
  12. OK를 누릅니다. 새로 추가된 항목이 이제 Tools 메뉴에 나타날 것입니다.

FileAppend (because it can also send text to stderr or stdout)

예제

Sends any syntax error that prevents the script from launching to stderr rather than displaying a dialog.

#ErrorStdOut