Problem mit der Eingabe durch user in einem batch Skript
Hi @,
ich habe ein batchprogramm geschrieben, dass auf bestimmte Werte in der Eingabe triggert.
Wenn ich das bei einer konstanten Zeichenfolge laufen lasse funktioniert das ganze einwandfrei
Aber wenn ich die Variable mit
vom User einlesen will dann triggert er nicht mehr
Ich hab Ger als Tastatur und denke, dass es vlt daran liegt, dasss bei der batch vermutlich USA Tastatur verwendet wird
daher 2 Fragen:
weiss einer wie man vlt die Tastatur oder die Codepages im batch-file umstellen bzw synchronisieren kann
oder:
Weiss einer wie ich die Werte via Universalcode (vlt ASCI-Code) synchronisieren kann
Danke für die Mühe im Voraus und gl hf,
arael995
ich habe ein batchprogramm geschrieben, dass auf bestimmte Werte in der Eingabe triggert.
Wenn ich das bei einer konstanten Zeichenfolge laufen lasse funktioniert das ganze einwandfrei
Aber wenn ich die Variable mit
set /P Variable=
Ich hab Ger als Tastatur und denke, dass es vlt daran liegt, dasss bei der batch vermutlich USA Tastatur verwendet wird
daher 2 Fragen:
weiss einer wie man vlt die Tastatur oder die Codepages im batch-file umstellen bzw synchronisieren kann
oder:
Weiss einer wie ich die Werte via Universalcode (vlt ASCI-Code) synchronisieren kann
Danke für die Mühe im Voraus und gl hf,
arael995
5 Antworten
- LÖSUNG Skyemugen schreibt am 22.09.2011 um 10:15:42 Uhr
- LÖSUNG azrael995 schreibt am 22.09.2011 um 10:48:47 Uhr
- LÖSUNG azrael995 schreibt am 22.09.2011 um 10:59:44 Uhr
- LÖSUNG Skyemugen schreibt am 22.09.2011 um 11:04:12 Uhr
- LÖSUNG azrael995 schreibt am 22.09.2011 um 11:24:22 Uhr
- LÖSUNG azrael995 schreibt am 22.09.2011 um 10:48:47 Uhr
LÖSUNG 22.09.2011 um 10:15 Uhr
Aloha,
macht für mich relativ wenig Sinn, ausgenommen, du willst zwangsläufig (deutsche) Umlaute dort eingegeben haben ...
Da wir nicht wissen, wie du triggerst, sprich, was mit der Variable geschieht, ist eine Lösungsfindung schwierig, an sich jedoch dürfte bei der Eingabe lateinischer Buchstaben und arabischen Zahlen batch ziemlich egal sein, wie sie ins Programm kommen (brauchst ja bloß mal, dein Eingabegebietsschema auf US ändern ...)
Wenn ein Problem mit DE-US besteht, dann eventuell eher beim Verarbeiten der Variable. Aber meine Kristallkugel ...
greetz André
P.S.: chcp - ganz toller Befehl
macht für mich relativ wenig Sinn, ausgenommen, du willst zwangsläufig (deutsche) Umlaute dort eingegeben haben ...
Da wir nicht wissen, wie du triggerst, sprich, was mit der Variable geschieht, ist eine Lösungsfindung schwierig, an sich jedoch dürfte bei der Eingabe lateinischer Buchstaben und arabischen Zahlen batch ziemlich egal sein, wie sie ins Programm kommen (brauchst ja bloß mal, dein Eingabegebietsschema auf US ändern ...)
Wenn ein Problem mit DE-US besteht, dann eventuell eher beim Verarbeiten der Variable. Aber meine Kristallkugel ...
greetz André
P.S.: chcp - ganz toller Befehl
LÖSUNG 22.09.2011 um 10:48 Uhr
das sind einfache if vergleiche, der auf die einzelnen Umlaute reagert d.h.:
denn die Buchstaben komen dort einzeln an in der Schleife
aber das prob is:
dass in der Eingabe z.B kann er ein ü darstellen und richtig einlesen, aber er erkennt das ü wenn er es mit meinem ü vergleicht nicht
wenn ich dagegen die konstanten z.b
als konstanten Wert eintrage gibt er mir als Zeichen in der Schleife kein ü sondern ein Kubik an d.h ^3
dass mit chcp is ne gute Idee und werd ich gleich probieren
thx azrael
if /i "%bla%" == "ü" goto blabla
aber das prob is:
dass in der Eingabe z.B kann er ein ü darstellen und richtig einlesen, aber er erkennt das ü wenn er es mit meinem ü vergleicht nicht
wenn ich dagegen die konstanten z.b
set Variable= übel
als konstanten Wert eintrage gibt er mir als Zeichen in der Schleife kein ü sondern ein Kubik an d.h ^3
dass mit chcp is ne gute Idee und werd ich gleich probieren
thx azrael
LÖSUNG 22.09.2011 um 10:59 Uhr
LÖSUNG 22.09.2011 um 11:04 Uhr
Aloha,
chcp an sich bewirkt auch nichts, du musst schon selbst die gewollte, neue Codepage mit angeben ...
Also du has die Wahl:
oder eben
greetz André
chcp an sich bewirkt auch nichts, du musst schon selbst die gewollte, neue Codepage mit angeben ...
Also du has die Wahl:
- wenn du die Abfrage mit Umlauten gestaltest, dann bearbeite entweder die batch am CMD mit EDIT X:\PfadZur\batch.bat und schreibe dort die Umlaute rein und speichere dann.
@echo off & setlocal
set /p Eingabe=
if /i %Eingabe% equ echo Umlaut durch EDIT erkannt
if /i %Eingabe% neq ü echo Umlaut nicht erkannt (das hier wurde ohne EDIT geschrieben)
pause
goto :eof
- mit chcp 1252
set /p Eingabe=
chcp 1252>nul
if /i %Eingabe% equ ü echo Umlaut erkannt
chcp 850>nul
LÖSUNG 22.09.2011 um 11:24 Uhr