Sendet alle Syntaxfehler, die den Start eines Skripts verhindern, zur Standardfehlerausgabe (stderr), anstatt ein Dialogfenster anzuzeigen.
#ErrorStdOut Kodierung
Typ: Zeichenkette
Wenn weggelassen, wird standardmäßig CP0 (die Standard-ANSI-Codepage des Systems) verwendet. Andernfalls geben Sie eine Kodierungszeichenkette an, die festlegt, wie die Ausgabe kodiert werden soll. Zum Beispiel bewirkt #ErrorStdOut "UTF-8"
, dass Fehlermeldungen als UTF-8 kodiert werden, bevor sie zur Standardfehlerausgabe (stderr) gesendet werden. Das Programm, das die Ausgabe erfasst, muss UTF-8 unterstützen, und in einigen Fällen muss es erst konfiguriert werden, damit es diese überhaupt erfassen kann.
Hinweis: Dieser Parameter ist kein Ausdruck, kann aber in Anführungszeichen gesetzt werden (entweder 'einfach' oder "doppelt").
Wenn diese Direktive im Skript nicht angegeben ist, wird jeder Syntaxfehler in einem Dialogfenster angezeigt.
Fehler werden in stderr statt in stdout geschrieben. Die Windows-Eingabeaufforderung und umfangreiche Texteditoren können in der Regel beide Ausgabetypen anzeigen.
Dies befähigt umfangreiche Texteditoren wie TextPad, SciTE, Crimson und EditPlus, zur fraglichen Zeile zu springen, sobald ein Syntaxfehler auftritt. Anstatt diese Direktive jedes Mal in ein Skript einzufügen, ist es üblicherweise besser, den Texteditor so einzustellen, dass er ein AutoHotkey-Skript mit der Befehlszeilenoption /ErrorStdOut startet (weiter unten finden Sie Anweisungen, wie Sie den Texteditor einstellen können).
Da AutoHotkey kein Konsolenprogramm ist, werden Fehler nicht direkt in der Windows-Eingabeaufforderung angezeigt. Dies kann umgangen werden, indem 1) das Skript mit der Ahk2Exe-ConsoleApp-Direktive kompiliert wird, oder 2) die Ausgabe des Skripts über Piping oder Weiterleitung abgefangen wird. Zum Beispiel:
"C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "Mein Skript.ahk" 2>&1 |more "C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "Mein Skript.ahk" 2>"Syntax-Fehler Log.txt"
Sie können die Ausgabe auch direkt via Piping in die Zwischenablage kopieren, indem Sie den systeminternen Clip-Befehl verwenden. Zum Beispiel:
"C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "Mein Skript.ahk" 2>&1 |clip
Hinweis: 2>&1
bewirkt, dass stderr an stdout weitergeleitet wird, während 2>DateiName
stderr nur an eine Datei weiterleitet.
#ErrorStdOut kann wie alle anderen Direktiven nicht bedingt ausgeführt werden.
EditPlus:
C:\Program Files\AutoHotkey\AutoHotkey.exe
/ErrorStdOut "$(FilePath)"
$(FileDir)
TextPad:
C:\Windows\System32\cmd.exe
-- drücken Sie anschließend OK.cmd.exe
(oder der vollständige Pfad)/c ""C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "$File""
$FileDir
FileAppend (weil es auch Text zur stderr oder stdout senden kann)