Wenn Sie Windows automatisieren und die Ausgabe von verschiedenen Befehlen (intern cmd.exe
oder extern) umleiten, werden Sie feststellen, dass Ihre Protokolldateien kombinierte Unicode- und ANSI-Ausgaben enthalten (was bedeutet, dass sie ungültig sind und nicht funktionieren) laden Sie gut in Zuschauer / Redakteure).
Ist es möglich, cmd.exe mit UTF-8 zu arbeiten? Bei dieser Frage geht es nicht um Anzeige, s um stdin / stdout / stderr Umleitung und Unicode.
Ich suche nach einer Lösung, mit der Sie:
Wenn es nicht möglich ist, diese Konsistenz mit Batch-Dateien zu erhalten, gibt es eine andere Möglichkeit, dieses Problem zu lösen, wie zum Beispiel die Verwendung von Python-Skripten? In diesem Fall würde ich gerne wissen, ob es möglich ist, die Unicode-Erkennung alleine durchzuführen (Benutzer, die das Scripting verwenden, sollten sich nicht daran erinnern, ob die aufgerufenen Tools Unicode ausgeben oder nicht, sondern nur die Ausgabe in UTF-8 konvertieren.
Der Einfachheit halber nehmen wir an, dass, wenn die Werkzeugausgabe nicht Unicode ist, diese als UTF-8 (keine Codepageumwandlung) betrachtet wird.
Sie können chcp
verwenden, um die aktive Codepage zu ändern. Dies wird auch zum Umleiten von Text verwendet:
Beachten Sie jedoch, dass dies keine Auswirkungen hat, wenn cmd
mit dem Schalter /u
gestartet wurde, der die Unicode-Ausgabe (UTF-16 in diesem Fall) erzwingt. Wenn dieser Schalter aktiv ist, wird die gesamte Ausgabe in UTF-16LE sein, unabhängig von der Codepage, die mit chcp
festgelegt wurde.
Beachten Sie außerdem, dass die Konsole für die interaktive Ausgabe unbrauchbar ist, wenn sie auf Rasterschriftarten eingestellt ist. Ich bekomme in diesem Fall lustige Fehlermeldungen:
%Vor%Verwenden Sie also entweder ein vernünftiges Setup (TrueType-Schriftart für die Konsole) oder ziehen Sie diesen Stunt nicht, wenn Sie die Konsole interaktiv verwenden und einen Pfad haben, der Nicht-ASCII-Zeichen enthält.
ohne
%Vor%Hat mir geholfen. Damit hatte ich einen breiten Charakter in der Druckwarnung.
Tags und Links unicode console cmd io-redirection ansi