boogieman
Goto Top

If und GOTO in Batch

Hallo face-smile
Ich bringe mir zurzeit das Programmieren per JAVA und Batch bei bin nur bei manchem noch nicht ganz dahinter gestiegen und würde mich über Antworten sehr freuen.

Die Batch um welche es geht soll später eine URL aufrufen die dann ein Backup startet. Die Batch startet dann so mit einer Begrüßung und nimmt die URL als Variable auf, da diese dann noch verwendet wird. Dann soll es halt die URL noch einmal anzeigen und dann per GOTO weiter gehen. Nur das GOTO will nicht... her das script

@echo off
cls

echo Herzlich willkommen
echo -----------------------------------------------------
set /p url=welche URL soll aufgerufen werden?
pause

cls
echo -----------------------------
echo dieser link wird aufgerufen
echo -
echo %url%

rem hier haengt es jetzt ..
set /p antw = Ist dieser Link richtig? (j/n)
if %antw% == "j" goto ja
if %antw% == n goto nein

:ja
echo jaaaa
pause
:nein echo neeein
pause


wieso ist das goto dort falsch? Welche Richtlinien muss ich bei if und goto beachten?

Freue mich auf eure Antworten und bedanke mich schon einmal im voraus face-smile

Content-Key: 241683

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

Printed on: April 28, 2024 at 12:04 o'clock

Member: Gersen
Solution Gersen Jun 24, 2014 updated at 09:24:38 (UTC)
Goto Top
Hallo,

versuch doch mal:
set /p antw=Ist dieser Link richtig? (j/n)
if "%antw%" == "j" goto ja  
goto nein

Wichtig: die Leerzeichen in Zeile 1, die Anführungszeichen in Zeile 2 - zum Einlesen ins Thema "IF in der Batch" - hier.

Gruß,
Gersen
Member: MasterBlaster88
Solution MasterBlaster88 Jun 24, 2014 updated at 09:24:41 (UTC)
Goto Top
Hi,

dir fehlen die Anführungszeichen um %antw%

edit: Sorry hab den Post vorher überlesen :/
Member: 0x32f1
Solution 0x32f1 Jun 24, 2014 updated at 09:24:42 (UTC)
Goto Top
Um das ganze vom Ablauf sauberer zu machen (Fehlerhafte Eingabe abfangen, nach "jaaa" nicht immer "neein" usw. könntest du noch:

set /p antw = Ist dieser Link richtig? (j/n)
if "%antw%" == "j" goto ja  
if "%antw%" == "n" goto nein  
goto error

:ja
echo jaaaa
pause
goto :eof

:nein
echo neeein
pause
goto :eof

:error
echo Fehler
pause
Member: Boogieman
Boogieman Jun 24, 2014 at 09:26:49 (UTC)
Goto Top
Super! face-smile
Vielen dank für die Antworten und vor allem die Tipps face-smile dank euch funktioniert es schon wieder und ich kann weiter machen (y)

vielen vielen dank!
Member: Boogieman
Boogieman Jun 24, 2014 at 09:30:50 (UTC)
Goto Top
das goto zu dem beenden ist gut, danke face-smile
Member: Xaero1982
Xaero1982 Jun 24, 2014 at 10:00:57 (UTC)
Goto Top
Und um noch sicherer zu sein sollte es:

if /i ...

heißen, damit man auch mal ein J und ein N eintragen kann.

Gruß
Member: Boogieman
Boogieman Jun 24, 2014 at 10:08:53 (UTC)
Goto Top
sehr gut
danke face-smile