WinFuture-Forum.de: Batch "if Bedingung" -> Wie ? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Batch "if Bedingung" -> Wie ?


#1 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 21. Februar 2009 - 14:36

Hallo allerseits,

ich bin gerade dabei mich ein bisschen mit Batch auseinander zu setzen.
Meine Frage ist nun wie ich diese IF Bedingung richtig mache mein Scribt schließt sich nach der Eingabe einer Zahl immer von selbst und es wird kein Text mehr angezeigt. (Scibt ist beendet...)

CODE
@echo off

:START

set /p eingabe="Bitte geben Sie die Zahl 1 ein:"

if %eingabe% [NOT] == 1 GOTO NEIN
if %eingabe% == 1 GOTO JA




:NEIN
echo.
echo falsche Eingabe
echo.
pause
cls
GOTO START

:JA
echo.
echo richtige Eingabe
echo.
pause
cls
GOTO START


Über Hilfe und Tipps würde ich mich sehr freuen.

Mit freundlichen Grüßen
0

Anzeige



#2 Mitglied ist offline   TI-User 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.665
  • Beigetreten: 27. Juni 07
  • Reputation: 15
  • Geschlecht:Männlich

geschrieben 21. Februar 2009 - 15:05

Hi,

der Befehl NOT muss vor der Variable stehen.

@echo off

:START

set /p eingabe="Bitte geben Sie die Zahl 1 ein:"

if NOT %eingabe% == 1 GOTO NEIN
if %eingabe% == 1 GOTO JA




:NEIN
echo.
echo falsche Eingabe
echo.
pause
cls
GOTO START

:JA
echo.
echo richtige Eingabe
echo.
pause
cls
GOTO START


Gruß TI-User

Dieser Beitrag wurde von TI-User bearbeitet: 21. Februar 2009 - 15:19

0

#3 Mitglied ist offline   Lofote 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.526
  • Beigetreten: 24. August 04
  • Reputation: 1

geschrieben 21. Februar 2009 - 15:41

Script, nicht Scribt, bitte :wink:...

Ti-User hat dir ja schon die Lösung gegeben. Um solchen Problemen in Zukunft besser auf die Spur zu kommen, musst du verhindern, dass das Konsolenfenster direkt danach zugeht: Dazu startest du das Programm direkt von der Kommandozeile (Start, Ausführen, "cmd", dort aufs richtige Verzeichnis und dort dann per Eingabe des Namens Batchdatei das Skript starten). Dann siehst du nämlich die Fehlermeldung. Da die Fehlermeldung leider keine Zeilenangabe macht (also wo z.B. der Syntaxfehler aufgegreten ist), für Testzwecke dann noch "@echo off" kurz ausklammern (einfach ein "rem " davormachen), damit du die Abarbeitung der einzelnen Zeilen nachverfolgen kannst.

Wenn du ernsthaft mal mit Konsolen-Skripten arbeiten solltest (d.h. z.B. täglich), am besten mit dem FAR Manager - http://www.farmanager.com arbeiten, das ist ein Dateibrowser, der selbst in der Console arbeitet, sodass das Editeren und Testen von Batchdateien wesentlich effizienter von statten geht.
0

#4 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 22. Februar 2009 - 09:45

Vielen Dank !!!

Danke für die Nützlichen Tipps und die schnellen Antworen werde mir den Farmanager mal anschauen ;-)

Grüße
0

#5 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 22. Februar 2009 - 09:56

Nun hab ich ein Weiteres Problem.

Ich bekomme folgenden Fehler:

CODE
Bitte geben Sie die Zahl 1 ein:1

"1" ist syntaktisch an dieser Stelle nicht verarbeitbar.


Vielen Dank schon mal ;-)
0

#6 Mitglied ist offline   blaha 

  • Gruppe: aktive Mitglieder
  • Beiträge: 179
  • Beigetreten: 08. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 22. Februar 2009 - 12:28

Wenn ich das Skript von TI-User kopier und in eine cmd Datei einfüge klapt es bei mir ohne probleme!

Hast du vlt irgendwo ein Leerzeichen zu viel, zu wenig?

MfG
0

#7 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 24. Februar 2009 - 10:52

Habe meinen Fehler gefunden.

Ich habe ein einfaches "=" aber es muss heißen "=="


Beispiel:

if NOT %eingabe% == 1 GOTO NEIN
if %eingabe% == 1 GOTO JA


Danke euch jetzt bin ich wieder ein Stück schlauer :(
0

#8 Mitglied ist offline   laaberlachs 

  • Gruppe: aktive Mitglieder
  • Beiträge: 50
  • Beigetreten: 27. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 24. Februar 2009 - 11:14

Nun steh ich for einem weiteren Schritt.

Ich möchte dass wenn der eingegebene Buchstabe nicht einer von c-z ist eine Fahlermeldung erscheint.
Wie mache ich das?

Hier mein Beispiel:

CODE
@echo off


:START

color f0
cls


set /p eingabe="Auswahl: "


if "%eingabe%" == "C" set var=%eingabe% GOTO RICHTIG

if NOT %eingabe% == C GOTO FALSCH


:RICHTIG

echo Richtig!!!
PAUSE

goto START



:FALSCH

echo.
echo Falsche oder keine Eingabe...
echo.
echo.
pause

goto START



Kann ich in der Zeile wo das hier steht:

if NOT %eingabe% == C GOTO FALSCH



auch schreiben:

if NOT %eingabe% == C-Z GOTO FALSCH


Aber ich glaube eher das geht ein bisschen anders aber wie?
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0