So konvertieren Sie eine in utf-8 gespeicherte Stapeldatei in eine Datei, die über eine andere Stapeldatei funktioniert, und führen Sie sie aus

Ich habe ein Programm, mit dem ich eine Batch-Datei erstelle. Mein Problem ist, dass das Programm UTF-8 ausgibt. Sobald sich also diakritische Zeichen wie é, à, ö, Ä in meiner Batch-Datei befinden, schlägt dies fehl. Es scheint, dass ich in dem Programm, das die Batch-Datei erstellt, keine Möglichkeit finde, meine Ausgabe in etwas anderes als UTF-8 zu konvertieren.

Also überlegte ich, zwei Bach-Dateien zu erstellen. Das aktuelle und ein anderes, das das aktuelle von UTF-8 nach ANSI konvertiert (Windows Codepage 1252 oder vielleicht cp 850) und es anschließend ausführt. Natürlich würde ich als ersten Befehl der eigentlichen Batch-Datei ein chcp xxxx hinzufügen.

Meine Frage ist also, ob es eine Alternative zu iconv unter Windows gibt - oder wie man eine UTF-8-Textdatei mithilfe einer zweiten Batchdatei in eine Windows-Codepage konvertiert. Gibt es in Win XP und höher etwas, das ich verwenden könnte, oder gibt es ein kostenloses und weiterverteilbares Tool, das ich dafür verwenden könnte?

Hinweis:

chcp 65001

funktioniert nicht für Batch-Dateien.

EDIT 1:

Unter Windows XP habe ich zwei Batch-Dateien erstellt, um die erste Antwort zu testen.

1.bat nach UTF-8 ohne Stückliste enthält:

chcp 1252
cd üöä

2.bat auch ohne Stückliste nach UTF-8 codiert - aber ohne Sonderzeichen enthält:

chcp 1252
type "1.bat" >"ansi_file.bat"

Die resultierende ansi_file.bat, die erstellt wird, wenn 2.bat ausgeführt wird, wird immer noch utf-8-codiert und nicht ansi-codiert.

EDIT 2:

Der erwähnte umgekehrte Vorgang funktioniert.

chcp 1252
echo ü > ansi.txt
cmd /u /c type ansi.txt > unicode.txt

aber keine der folgenden Zeilen

cmd /a /c type unicode.txt > back2ansi.txt
type unicode.txt > back2ansi_v2.txt

bringt mich zurück zu ANSI. Ich habe dies sowohl unter Windows XP als auch unter Windows 7 versucht. Kann mir jemand helfen?

HINWEIS:

Mir ist bekannt, wie der Windows Script Host und VBS verwendet werden. Ich würde es jedoch gerne vermeiden, vom Skript-Host abhängig zu sein. Die VBS-Methode wird hier detailliert beschrieben:http://msdn.microsoft.com/en-us/library/windows/desktop/aa368046%28v=vs.85%29.aspx

EDIT 3:

Die Textdatei, die mit dem obigen Unicode ü erstellt wurde, ist nicht utf-8

Die Windows-Unicode-Datei ist HEX:

FC 00 20 00 0D 00 0A 00

UTF-8 ohne Stückliste wäre HEX:

C3 BC 20 0D 0A

Die mit verknüpfte VBS-Lösung funktioniert nur mit dem Unicode-Formular, schlägt jedoch im UTF-8-Formular fehl. Ich muss UTF-8 in eine andere Codepage konvertieren, damit nicht einmal eine für mich funktioniert ...

Antworten auf die Frage(3)

Ihre Antwort auf die Frage