lehnhard
Goto Top

in bat den Zeichensatz bei Ausgabe ändern

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:
set dir=data
set xsl=f:\xslt\

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


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

Printed on: April 19, 2024 at 02:04 o'clock

Member: worogu
worogu Nov 29, 2005 at 10:30:30 (UTC)
Goto Top
probier mal
"graftabl 1252" --- bei mir geht dat...

woro
Member: Biber
Biber Dec 03, 2005 at 22:07:57 (UTC)
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
Member: lehnhard
lehnhard Dec 04, 2005 at 10:34:57 (UTC)
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
Member: Biber
Biber Dec 04, 2005 at 11:01:26 (UTC)
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