in bat den Zeichensatz bei Ausgabe ändern

lehnhard
Goto Top

oder wie gebe ich Codepage 850 als Characterset in einem XML Dokument an.

Hallo in einem Databasepublishingprojekt haben liegen ein großen Anzahl von Bildern vor. Leider sind diese nicht komplett und desshalb möchte ich eine XML Datei mir Hilfe der folkgenen Bat etstellen:
<font class="code">
set dir=data
set xsl=f:\xslt\

echo ^ &lt; root^> >%xsl%bilder.xml
for %%f in (*.*) do (
echo ^ &lt; datei^>%%f^ &lt; /datei> >>%xsl%bilder.xml
)
echo ^ &lt; /root> >>%xsl%bilder.xml
</font>


Leider werden dann alle Dateinamen die Umlaute enthalten so weggeschrieben, daß ein späterer vergleich über beide XML Dateien möglich ist, da DOS hier ja einen anderen Zeichensatz verwendet.

Daher folgende Frage. Ist es möglich bei dem Echo zu verlangen einen anderen Zeichensatz zu verwenden wie UTF-8 Oder ISO....
Oder welchen Zeichensatz muß ich im XML Dokument angeben, um dennoch den gewünschten Vergleich durchführen zu können.

Lehnhard Lützen

Content-Key: 20577

Url: https://administrator.de/contentid/20577

Ausgedruckt am: 04.07.2022 um 15:07 Uhr

Mitglied: worogu
worogu 29.11.2005 um 11:30:30 Uhr
Goto Top
probier mal
"graftabl 1252" --- bei mir geht dat...

woro
Mitglied: Biber
Biber 03.12.2005 um 23:07:57 Uhr
Goto Top
Moin Lehnhard,
wahrscheinlich bin ich Tage zu spät und vielleicht hat auch woros Tipp bei Dir geholfen, aber...
>>Oder welchen Zeichensatz muß ich im XML Dokument angeben...
Stressfreier ist natürlich jeder Zeichensatz, in dem zumindest die (deutschen) Umlaute "maskiert" werden.
Dann mit hoher Wahrscheinlichkeit erzeugst du ja die XMLs nicht für DOS/CMD (also ASCII-Zeichensatz), sondern für Windows im ANSI-Zeichensatz.

Deshalb würde ich lieber UTF-8 statt charset ISO-8859-1 oder ..-15 nehmen...
eigentlich..
andererseits.. für den CMD-Prompt ist natürlich auch das Ampersand "&" ein Steuerzeichen.. kann auch wieder Probleme machen....

Also, mein Angebot: wenn Dein Umlaut-Problem noch besteht, dann melde Dich nochmal.
Zur Not würde ich den ganzen geECHOten ASCII-Krempel in ANSI konvertieren - das sind mit *.vbs ein Dutzend Zeilen und für so ein großes Projekt wie Deins lohnt sich das ja.

Der von woro beschriebene Weg funktioniert IMHO nicht auf allen Windows-Versionen zuverlässig.
Grüße Biber
Mitglied: lehnhard
lehnhard 04.12.2005 um 11:34:57 Uhr
Goto Top
der graftabl befehl hat gut funktioniert. ISO-8859-1 ist auch klar.
Von weiteren Umgebungen für den Worflow sehe ich lieber ab. Dennoch vielen Dank für Deine Hilfsbereitschaft.
Welche Probleme könnten den mit graftabl unter welchen Versionen auftreten?

Lehnhard Lützen
Mitglied: Biber
Biber 04.12.2005 um 12:01:26 Uhr
Goto Top
Moin Lehnhard,
>>Welche Probleme könnten den mit graftabl unter welchen Versionen auftreten?

Na ja, Probleme ist vielleicht etwas drastisch ausgedrückt - nach meinem Gefühl verlässt man/frau bei Benutzung der Befehle (je nach Win-Version) ChCP und GrafTabl ein wenig den sauber programmierten und gepflegten Bereich bei M$.
Gerade bei den Hilfs-Utilitities, die ich oft verwende, z.B. Find.exe und noch deutlicher Findstr.exe treten unerwünschte Nebeneffekte auf, weil diese einen Wechsel der Codepage nicht so nachvollziehen, wie es "voraussehbar" wäre.
Oder solche Seiteneffekte, dass die Darstellung von geECHOten Strings abweicht, je nachdem ob das CMD-Fenster im Vollbild, als Fenster oder unsichtbar geöffnet wird.
Das Problem ist weniger der Output... das bekomme ich auch immer sauber hin - fummelig wird es z.B. bei Input-Textdateien, die mal im ANSI, mal im ASCII-Zeichensatz vorliegen und aber "von außen" nicht erkennbar sind - die heißen halt immer "*.txt" oder "*.csv".
Deshalb habe ich auch für gelegentlichen Einsatz ein paar Xlate2ANSI bzw. Xlate2ASCII-Schnipsel hier rumliegen. Nur um auf der sicheren Seite zu sein.

Grüße Biber