souljumper: Batchdatei mit ü/ä/ö etc.

hi,

ich weis es ist ein leidiges und viel besprochen thema zu dem es auch nicht wenige eintragungen im internet gibt.

wie aus dem titel zu lesen möchte in einer batchdatei mit sonderzeichen arbeiten. die batchdatei die ich aufrufe startet eine exe und füttert diese mit parametern die u.a. eben auch die sonderzeichen der deutschen sprache enthalten können.

was ich gelesen hab, liegt das an verschiedenen codepages die das "Dos-Fenster" und Windows selbst benutzen. Habe dazu den oft zitierten tipp gelesen die batchdatei in einem dos-editor zu editieren und damit das problem zu umgehen.

nun hab ich aber die situation, dass meine batchdatei individuell mit verschiedenen inhalten, für verschiedene benutzer erstellt wird und somit einen dynamischen inhalt enthält. da jedesmal nochmal etwas  editiren ist relativ sinnfrei.

gibt es für mich da noch eine andere chance, die sonderzeichen in einer batchdatei zu verwenden, damit diese dann auf der windowsseite richtig ankommen?

(hab noch den befehl "mode con codepage select=437" zum auswählen einer codepage gefunden, mit dieser werden die sonderzeichen zwar anders dargestellt, aber immernoch falsch).

hoffe mir kann jemand helfen.

gruß

  1. gudn tach!

    nun hab ich aber die situation, dass meine batchdatei individuell mit verschiedenen inhalten, für verschiedene benutzer erstellt wird und somit einen dynamischen inhalt enthält. da jedesmal nochmal etwas  editiren ist relativ sinnfrei.

    den abschnitt habe ich nicht verstanden.

    gibt es für mich da noch eine andere chance, die sonderzeichen in einer batchdatei zu verwenden, damit diese dann auf der windowsseite richtig ankommen?

    (hab noch den befehl "mode con codepage select=437" zum auswählen einer codepage gefunden, mit dieser werden die sonderzeichen zwar anders dargestellt, aber immernoch falsch).

    aaalso, wenn du cp (codepage) 437 oder cp 850 verwendest, kannst du einen trick benutzen. ich nehme mal als beispiel das programm perl, mit dem ich ein "ä" im cli ausgeben lassen will:
      perl -e "print 'ä'"
    wuerde als ausgabe ein bloedes õ drueber liefern.
    aaaber
      perl -e "print 'X'"  (wobei X das zeichen ist, das man via ALT+0132 eingibt - und die null ist dabei wichtig!)
    wuerde im cli tatsaechlich ein "ä" ausspucken. aehnliche kann man auch mit den anderen drecksbuchst^Wumlauten und dem eszett umgehen:
    0132 ä
    0148 ö
    0129 ü
    0142 Ä
    0153 Ö
    0154 Ü
    0225 ß

    oder du verwendest einfach cp 1252 via
      mode con codepage select=1252
    und brauchst dich mit dem obigen kram nicht herumplagen. :-)

    beachte aber, dass die ergebnisse sich aendern, wenn du sie vom cli kopierst z.b. in ein notepad-window. da waere dann naemlich doch wieder die oben genannte methode geschickter.

    es gibt auch noch eine dritte moeglichkeit (die ich bevorzuge): verwende einfach "ae" statt "ä" usw.

    prost
    seth