Richtige If not-Überprüfung

kkboy94
Goto Top
Hallo Leute,

ein nächste Problem tut sich mir in meiner Batch-programmierung auf.
Ich poste einfach mal den betreffenden Code-Abschnitt

Das Problem ist jetzt folgendes. Wenn ich nun "Nein" eingebe (was an sich eigentlich richtig ist), sagt mir die Batch, dass die Auswhal falsch getroffen ist. Ich habe auch schon geprüft ob ich etwas in dem Programmcode an der Rechtschreibung falsch gemacht hab, aber dem war nicht so.

Vielleicht gibt es ja auch noch andere Wege, die Auswahl wiederholen zu lassen, wenn die Eingabe mit keiner der beiden Möglichkeiten übereinstimmt.
Ich hoffe ihr könnt mir helfen.

MfG Karsten

Content-Key: 144711

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

Ausgedruckt am: 05.07.2022 um 05:07 Uhr

Mitglied: bastla
bastla 12.06.2010 um 16:24:02 Uhr
Goto Top
Hallo kkboy94!

Warum willst Du Deine Benutzer zu einer Eingabe "Nein" zwingen? Zumeist wird es genügen, festzustellen, ob überhaupt etwas eingegeben wurde (um ein irrtümliches Enter abzufangen) und falls ja, ob sich daraus ein "Ja" ableiten lässt - also etwa:
Grüße
bastla
Mitglied: kkboy94
kkboy94 12.06.2010 um 16:38:59 Uhr
Goto Top
Danke für die Anregung
Auf die Idee bin ich noch nicht gekommen


Was bedeutet das "~,1%"?

Da ist noch etwas was mich verwirrt:
Muss das question1 nicht als Variable mit % angegeben werden?

und das "goto :eof" kann ich dann durch meine eigen Sprungmarke ersetzen?


Dank nochmal

MfG Karsten
Mitglied: bastla
bastla 12.06.2010 um 17:07:43 Uhr
Goto Top
Hallo kkboy!
Was bedeutet das "~,1%"?
Entspricht der Vorgangsweise im anderen Thread - außerdem lässt sich das durch ein
relativ leicht nachvollziehen ...
Muss das question1 nicht als Variable mit % angegeben werden?
Gegenfrage: Kannst Du Dir einen vernünftigen Grund vorstellen, warum ich die Prozentzeichen dann nicht gesetzt hätte? Abgesehen davon: Was hat Dein diesbezüglicher Test ergeben (Du hast es doch sicher schon versucht)?
und das "goto :eof" kann ich dann durch meine eigen Sprungmarke ersetzen?
Völlig richtig (wenn Du es beibehieltest, würde der Batch beendet).

Grüße
bastla
Mitglied: kkboy94
kkboy94 12.06.2010 um 21:57:21 Uhr
Goto Top
Funktioniert alles wunderbar. Wenn man dich nicht hätte.....
Vielen Dank bastla

> Muss das question1 nicht als Variable mit % angegeben werden?
Gegenfrage: Kannst Du Dir einen vernünftigen Grund vorstellen, warum ich die Prozentzeichen dann nicht gesetzt hätte?
Abgesehen davon: Was hat Dein diesbezüglicher Test ergeben (Du hast es doch sicher schon versucht)?

Jap ich habs schon versucht, und wenn ich da Prozentzeichen hin gesetzt habe, ging er sofort zur Sprungmarke. Ist das einfach so, oder gibs da eine Begründung für? Aus reinem Interesse frag das jetzt mal.


PS: Ich wollt jetzt nicht unbedingt einen neuen Thread aufmachen, und außerdem gehörts auch ein wenig zum Thema dazu also hier meine nächste Frage:

Ich habe jetzt in meiner Batch zwei solcher Fragen. Nun hätte ich gerne Nach Abfrage dieser Fragen, eine Überprüfung, ob beide Fragen mit Nein beantwortet wurden, Wenn dies der Fall ist, soll halt eine bestimmte Ausgabe angezeigt werden. Soweit mein Versuch
Mitglied: bastla
bastla 13.06.2010 um 00:32:32 Uhr
Goto Top
Hallo kkboy!
Ist das einfach so, oder gibs da eine Begründung für? Aus reinem Interesse frag das jetzt mal.
Ja face-wink - aus der Hilfe zu "if":
Die Bedingung DEFINED arbeitet genau wie EXIST, bezieht sich aber auf
den Namen einer Umgebungsvariablen und ist wahr, wenn die Umgebungs-
variable definiert ist.
Es ist also nicht die Variable (mit Prozentzeichen), sondern der Name der Variablen anzugeben ...
An sich spricht nicht viel gegen Deine beiden "if" (die Klammer nach dem ersten ist allerdings nicht nötig, und das "exit" - wenn es, wie hier, nicht dazu dient, per "/b" einen Errorlevel zurückzuliefern - würde ich durch ein "goto :eof" ersetzen).

Falls ohnehin nur eine der beiden abgefragten Aktionen ausgeführt werden könnte, böte sich auch "goto" an - schematisch etwa so:
Weitere Alternative: Eine (Schalter-)Variable %Done% vorweg löschen und bei Ausführung einer Aktion mit einem (beliebigen) Wert versehen
Am Ende kann dann per
kontrolliert werden, ob der Schalter zumindest durch eine Aktion gesetzt wurde.

Grüße
bastla
Mitglied: kkboy94
kkboy94 13.06.2010 um 11:22:14 Uhr
Goto Top
Hallo bastla,
#Meine Fragen
  • Wie füge ich deine erste Methode richtig in meinen untenstehenden Code ein?
  • Siehe weiter unten

Soweit mein Code

nun hatte ich in meinem letzten Post meine Möglichkeit angeführt. Diese Möglichkeit habe ich noch etwas ausgefeilt und bin zu folgendem Ergebnis gekommen:

Wenn ich bei den beiden Überprüfungsfragen jeweils nicht mit JA (oder ja, Ja, jA....) antworte sollte mir das Programm ja dann sagen, dass ich keine Aktion gewählt habe. Es zeigt mir aber für einen kurzen Augenblick nur "Syntaxfehler" und schließt dann sofort.
Ich weiß aber nicht welcher Syntaxfehler gemeint ist, oder wo ich den finde. Kannst du mir da auch noch bei helfen bastla?

Ich wäre dir sehr verbunden



MfG Karsten
Mitglied: bastla
bastla 13.06.2010 um 13:40:23 Uhr
Goto Top
Hallo kkboy94!

Abgesehen davon, dass die Schreibweise für die Überprüfung nur des ersten Zeichens so
oder
aussehen müsste, würdest Du auch eine UND-Verknüpfung für ein zweimaliges "J" durchführen, anstatt auf "NICHT UND NICHT" zu prüfen - daher allenfalls:
Da die Eingaben aber eigentlich einem (Mini-)Menü entsprechen, könntest Du ja vielleicht eher so vorgehen:
Grüße
bastla
Mitglied: kkboy94
kkboy94 13.06.2010 um 14:08:32 Uhr
Goto Top
So funktionierts prima. Dankeschön für die klasse Hilfe.

Ich glaube ich muss noch ein wenig an der Vereinfachung meiner Programmierung (falls man das so nennen kann) arbeiten. Ich mache ja anscheinend die Sachen komplexer als nötig.

MfG Karsten