gelöst IF Befehl, wie funktioniert er?
Batch
Hi,
ich will mir eine Batch schreiben, in der man auf eine Frage mit einer von vier Zahlen antwortet und dann springt er zu dem Punkt.
...
ECHO Frage (0-3)
SET /p var=
CLS
ECHO.
IF /i var==0 GOTO null
IF /i var==1 GOTO eins
IF /i var==2 GOTO zwei
IF /i var==3 GOTO drei
...
Aber ich bekomm das nicht hin. Ich hoffe ihr helft mir.
MfG
ich will mir eine Batch schreiben, in der man auf eine Frage mit einer von vier Zahlen antwortet und dann springt er zu dem Punkt.
...
ECHO Frage (0-3)
SET /p var=
CLS
ECHO.
IF /i var==0 GOTO null
IF /i var==1 GOTO eins
IF /i var==2 GOTO zwei
IF /i var==3 GOTO drei
...
Aber ich bekomm das nicht hin. Ich hoffe ihr helft mir.
MfG
17 Antworten
- LÖSUNG illuzione schreibt am 16.12.2006 um 21:46:18 Uhr
- LÖSUNG Dani schreibt am 16.12.2006 um 22:15:05 Uhr
- LÖSUNG Smiley schreibt am 17.12.2006 um 12:41:09 Uhr
- LÖSUNG miniversum schreibt am 17.12.2006 um 13:24:39 Uhr
- LÖSUNG Smiley schreibt am 17.12.2006 um 13:49:41 Uhr
- LÖSUNG miniversum schreibt am 17.12.2006 um 13:24:39 Uhr
- LÖSUNG Smiley schreibt am 17.12.2006 um 12:41:09 Uhr
- LÖSUNG illuzione schreibt am 17.12.2006 um 14:06:17 Uhr
- LÖSUNG Smiley schreibt am 17.12.2006 um 14:20:33 Uhr
- LÖSUNG illuzione schreibt am 17.12.2006 um 14:50:04 Uhr
- LÖSUNG miniversum schreibt am 17.12.2006 um 16:17:35 Uhr
- LÖSUNG Smiley schreibt am 17.12.2006 um 16:41:45 Uhr
- LÖSUNG miniversum schreibt am 17.12.2006 um 16:52:26 Uhr
- LÖSUNG illuzione schreibt am 17.12.2006 um 17:03:42 Uhr
- LÖSUNG Smiley schreibt am 17.12.2006 um 18:07:43 Uhr
- LÖSUNG illuzione schreibt am 17.12.2006 um 18:22:51 Uhr
- LÖSUNG illuzione schreibt am 17.12.2006 um 20:56:56 Uhr
- LÖSUNG Smiley schreibt am 18.12.2006 um 13:24:16 Uhr
- LÖSUNG Biber schreibt am 18.12.2006 um 17:43:28 Uhr
- LÖSUNG Smiley schreibt am 18.12.2006 um 13:24:16 Uhr
- LÖSUNG illuzione schreibt am 17.12.2006 um 20:56:56 Uhr
- LÖSUNG illuzione schreibt am 17.12.2006 um 18:22:51 Uhr
- LÖSUNG Smiley schreibt am 17.12.2006 um 18:07:43 Uhr
- LÖSUNG illuzione schreibt am 17.12.2006 um 17:03:42 Uhr
- LÖSUNG miniversum schreibt am 17.12.2006 um 16:52:26 Uhr
- LÖSUNG Smiley schreibt am 17.12.2006 um 16:41:45 Uhr
- LÖSUNG miniversum schreibt am 17.12.2006 um 16:17:35 Uhr
- LÖSUNG illuzione schreibt am 17.12.2006 um 14:50:04 Uhr
- LÖSUNG Smiley schreibt am 17.12.2006 um 14:20:33 Uhr
LÖSUNG 16.12.2006 um 21:46 Uhr
01.
set choice=
02.
set /P choice=Wahl:
03.
if not ´%choice%´==´´ set choice=%choice:~0,1%
04.
if ´%choice%´==´0´ goto null
05.
if ´%choice%´==´1´ goto eins
06.
if ´%choice%´==´2´ goto zwei
07.
if ´%choice%´==´2´ goto drei
http://www.illuziown.org/code.txt
so solls aussehen
hoffe es hilft
mfg illu###e
LÖSUNG 16.12.2006 um 22:15 Uhr
Abend,
probier's mal so:
Gruß
Dani
probier's mal so:
01.
ECHO Frage (0-3)
02.
SET /p var=
03.
CLS
04.
ECHO.
05.
06.
IF %var%==0 GOTO null
07.
IF %var%==1 GOTO eins
08.
IF %var%==2 GOTO zwei
09.
IF %var%==3 GOTO drei
10.
....
Dani
LÖSUNG 17.12.2006 um 12:41 Uhr
01.
set var=
02.
set /P var=Wahl:
03.
if not ´%var%´==´´ set var=%var:~0,1%
04.
if ´%var%´==´0´ goto null
05.
if ´%var%´==´1´ goto eins
06.
if ´%var%´==´2´ goto zwei
07.
if ´%var%´==´2´ goto drei
if not ´%var%´==´´ set var=%var:~0,1%
Ich kenn mich nicht so gut aus, was macht dieser Befehl? (vllt. wenn eingabe nicht 0-3 dann versuchs nochmal?) Und warum die ganzen striche? (´)
Ich möchte auch gern wissen wie das mach das, wenn man nicht 0-3 eingegeben hat, das man das wiederholen kann und er ein Error ausgibt.
@Dani: Ich weiß garnicht warum ich das ganze nicht mit % versucht habe. Danke.
MfG
LÖSUNG 17.12.2006 um 13:24 Uhr
Da kannst du auch was anderes wie diese Striche nehmen. " oder [] drum herum geht auch.
Das mit der Abfrage wenn was anderes eingegeben wurde geht so dann:
:Frage
ECHO Frage (0-3)
SET /p var=
CLS
ECHO.
IF /i [%var%]==[0] GOTO null
IF /i [%var%]==[1] GOTO eins
IF /i [%var%]==[2] GOTO zwei
IF /i [%var%]==[3] GOTO drei
echo Bitte nur 0 bis 3 eingeben
goto :Frage
miniversum
Das mit der Abfrage wenn was anderes eingegeben wurde geht so dann:
:Frage
ECHO Frage (0-3)
SET /p var=
CLS
ECHO.
IF /i [%var%]==[0] GOTO null
IF /i [%var%]==[1] GOTO eins
IF /i [%var%]==[2] GOTO zwei
IF /i [%var%]==[3] GOTO drei
echo Bitte nur 0 bis 3 eingeben
goto :Frage
miniversum
LÖSUNG 17.12.2006 um 13:49 Uhr
Danke, ihr habt mir sehr geholfen.
MfG
MfG
LÖSUNG 17.12.2006 um 14:06 Uhr
01.
@echo off
02.
:frage
03.
set var=
04.
set /P var=Wahl:
05.
if not [%var%]==[]; set var=%var:~0,1%
06.
if [%var%]==[0] goto null
07.
if [%var%]==[1] goto eins
08.
if [%var%]==[2] goto zwei
09.
if [%var%]==[3] goto drei
10.
echo Bitte nur 0 - 3 eingeben
11.
goto frage
12.
13.
:null
14.
echo Du bist bei Null
15.
goto end
16.
:eins
17.
echo Du bist bei eins
18.
goto end
19.
:zwei
20.
echo du bist bei zwei
21.
goto end
22.
:drei
23.
echo du bist bei drei
24.
goto end
25.
26.
:end
27.
echo.
28.
pause
1. nochmal übersichtlicher ohne diese "´" du kannst es genauso mit "[ , ]" oder "( , ) " machen.
2.
01.
if not [%var%]==[]; set var=%var:~0,1%
3.
01.
Ich möchte auch gern wissen wie das mach das,
02.
wenn man nicht 0-3 eingegeben hat,
03.
das man das wiederholen kann und er ein Error ausgibt.
Hoffe hat geholfen
mfg illu###e
LÖSUNG 17.12.2006 um 14:20 Uhr
Wenn es jemanden interessiert hier ist der Quellcode:
Ein Problem hab ich noch, wenn ich das soweit benutze kommt immer der Fehler: Das senden von Dateien wird nicht länger unterstüzt. (an 127.0.0.1)
MfG
01.
@ECHO off
02.
03.
TITLE Nachrichten verschicken.
04.
05.
:ja
06.
CLS
07.
ECHO.
08.
ECHO Bitte gib jetzt den letzten Block der IP ein (192.168.0.[xxx]).
09.
SET /p ip=192.168.0.
10.
CLS
11.
ECHO.
12.
ECHO Bitte gib jetzt die Nachricht ein.
13.
SET /p msg=
14.
CLS
15.
:Frage1
16.
ECHO.
17.
ECHO Wie oft soll die nachricht geschickt werden (0-3)? Bei 0 wird sie solange geschickt bis das Programm beendet wird.
18.
SET /p var=
19.
CLS
20.
21.
IF /i %var%==0 GOTO endless
22.
IF /i %var%==1 GOTO eins
23.
IF /i %var%==2 GOTO zwei
24.
IF /i %var%==3 GOTO drei
25.
ECHO.
26.
ECHO Bitte nur 0 bis 3 eingeben.
27.
GOTO :Frage1
28.
29.
ECHO.
30.
ECHO Die Nachricht wird verschickt ...
31.
32.
:endless
33.
net send %IP% %msg%
34.
GOTO endless
35.
:eins
36.
net send %IP% %msg%
37.
GOTO Frage2
38.
:zwei
39.
net send %IP% %msg%
40.
net send %IP% %msg%
41.
GOTO Frage2
42.
:drei
43.
net send %IP% %msg%
44.
net send %IP% %msg%
45.
net send %IP% %msg%
46.
GOTO Frage2
47.
48.
CLS
49.
:Frage2
50.
ECHO.
51.
ECHO Noch eine nachricht verschicken? (0-1)
52.
SET /P frage=
53.
54.
IF /i %frage%==0 GOTO nein
55.
IF /i %frage%==1 GOTO ja
56.
ECHO.
57.
ECHO Bitte nur 0 oder 1 eingeben.
58.
GOTO :Frage2
59.
60.
:nein
61.
END
MfG
LÖSUNG 17.12.2006 um 14:50 Uhr
Hallo Smiley,
Der Nachrichtendienst müsste auf beiden Computern aktiviert sein um die "net send" Funktion verwenden zu können. Hast du diese vielleicht mit xp-Antispy deaktiviert? Falls du weitere Fragen hast müsstest du mal im Netzwerkbereich fragen, kenne mich da auch nicht so aus.
mfg illu###e
Der Nachrichtendienst müsste auf beiden Computern aktiviert sein um die "net send" Funktion verwenden zu können. Hast du diese vielleicht mit xp-Antispy deaktiviert? Falls du weitere Fragen hast müsstest du mal im Netzwerkbereich fragen, kenne mich da auch nicht so aus.
mfg illu###e
LÖSUNG 17.12.2006 um 16:17 Uhr
Da wirst du auch Probleme mit der IP bekommen.
Schau mal nach was in der Variablen %IP% steht.
desweiteren könntest du noch (ist einfach nur schöner udn ncith so fehleranfällig) die restliche IP die du abfrägst begrenzen auf die 255 udn auch kontrollieren das es ne Zahl ist.
miniversum
Schau mal nach was in der Variablen %IP% steht.
desweiteren könntest du noch (ist einfach nur schöner udn ncith so fehleranfällig) die restliche IP die du abfrägst begrenzen auf die 255 udn auch kontrollieren das es ne Zahl ist.
miniversum
LÖSUNG 17.12.2006 um 16:41 Uhr
Kannst du mir da Tipps geben? Ich hab keine Ahnung wie ich das Limitiere.
Außerdem hab ich MIR die Nachrichten geschrieben und der Dienst ist an. (127.0.0.1)
MfG
Außerdem hab ich MIR die Nachrichten geschrieben und der Dienst ist an. (127.0.0.1)
MfG
LÖSUNG 17.12.2006 um 16:52 Uhr
if $IP% lss 256 then..
bzw.
if not $IP% lss 256 then..
schau doch mal die hilfe zum IF Befehl an.
miniversum
bzw.
if not $IP% lss 256 then..
schau doch mal die hilfe zum IF Befehl an.
miniversum
LÖSUNG 17.12.2006 um 17:03 Uhr
Hallo Smiley,
Die Variable %IP% - wenn ich mich nicht täusche - ist auch falsch.
Schau dir mal folgendes Beispiel an, hoffe es wird deutlich.
mfg illu###e
Die Variable %IP% - wenn ich mich nicht täusche - ist auch falsch.
01.
@echo off
02.
03.
TITLE Nachricht
04.
05.
echo.
06.
echo Bitte letzten IP Block eingeben:
07.
set /P block4=
08.
echo.
09.
echo.
10.
echo Die komplette IP lautet:
11.
set IP=192.168.0.%block4%
12.
echo %IP%
13.
echo.
14.
pause>NUL
mfg illu###e
LÖSUNG 17.12.2006 um 18:07 Uhr
Nein das geht auch ohne diesen Umweg. Ich hab das auch in anderen Batchs so gemacht, da funktioniert es.
MfG
MfG
LÖSUNG 17.12.2006 um 18:22 Uhr
Hallo Smiley,
Ich widerspreche zwar sehr ungern aber es ist anders. Habe es extra nochmal ausprobiert.
Noch ein anderes Beispiel, welches in den obrigen Kommentaren irgendwo schonmal steht.
Wenn es so wäre wie du es sagst, dann wäre %var%, wenn man Null eingeben würde: "Wahl:0". Aber dies ist nicht der Fall. %var% ist nämlich "0" und nicht "Wahl:0".
Probier es einfach mal aus.
RICHTIG:
FALSCH:
Du wirst sehen die Ausgaben unterscheiden sich.
mfg illu###e
Ich widerspreche zwar sehr ungern aber es ist anders. Habe es extra nochmal ausprobiert.
Noch ein anderes Beispiel, welches in den obrigen Kommentaren irgendwo schonmal steht.
01.
@echo off
02.
:frage
03.
set var=
04.
set /P var=Wahl:
05.
if not [%var%]==[]; set var=%var:~0,1%
06.
if [%var%]==[0] goto null
Probier es einfach mal aus.
RICHTIG:
01.
@echo off
02.
03.
TITLE Nachricht
04.
05.
echo.
06.
echo Bitte letzten IP Block eingeben:
07.
set /P block4=
08.
echo.
09.
echo.
10.
echo Die komplette IP lautet:
11.
set IP=192.168.0.%block4%
12.
echo %IP%
13.
echo.
14.
pause>NUL
01.
@echo off
02.
03.
TITLE Nachricht
04.
05.
echo.
06.
echo Bitte letzten IP Block eingeben:
07.
SET /p ip=192.168.0.
08.
echo %IP%
09.
echo.
10.
pause>NUL
mfg illu###e
LÖSUNG 17.12.2006 um 20:56 Uhr
Hallo Smiley,
Habe mir nochmal Zeit für diese Batch genommen. Hier ist der komplette Code.
Viel Spaß damit, ich hoffe es klappt alles.
Doch bevor ich Tschüss sage möchte ich mal wissen für was du diese Endlos-Schleife benötigst. Oder generell was bringt es jemanden drei mal die selbe Mittteilung zu senden?
Naja ist ja auch nicht meine Angelegenheit, meine Aufgabe habe ich erfüllt und ich hoffe ich habe geholfen.
mfg illu###e
Habe mir nochmal Zeit für diese Batch genommen. Hier ist der komplette Code.
01.
@echo off
02.
:start
03.
cls
04.
echo.
05.
echo Bitte den 4. IP-Block eingeben.
06.
set /P IP4=192.168.1.
07.
set IP=192.168.1.%IP4%
08.
cls
09.
echo.
10.
echo Bitte Nachricht eingeben
11.
set /P MSG=
12.
cls
13.
echo Wieviel Mal soll die Nachricht versendet werden?
14.
set choice=
15.
set /P choice=Auswahl:
16.
if not [%choice%]==[] set choice=%choice:~0,1%
17.
if [%choice%] ==[1] goto einmal
18.
if [%choice%]==[2] goto zweimal
19.
if [%choice%]==[3] goto dreimal
20.
if [%choice%]==[0] goto endlos
21.
22.
:endlos
23.
net send %IP% %MSG%
24.
goto endlos
25.
:einmal
26.
net send %IP% %MSG%
27.
goto frage
28.
:zweimal
29.
net send %IP% %MSG%
30.
net send %IP% %MSG%
31.
goto frage
32.
:dreimal
33.
net send %IP% %MSG%
34.
net send %IP% %MSG%
35.
net send %IP% %MSG%
36.
goto frage
37.
38.
:frage
39.
cls
40.
echo Noch eine Nachricht?
41.
echo.
42.
echo 1 = Ja
43.
echo 0 = Nein
44.
echo.
45.
set choice2=
46.
set /P choice2=Auswahl:
47.
if not [%choice2%]==[] set choice2=%choice2:~0,1%
48.
if [%choice2%] ==[1] goto start
49.
if [%choice2%] ==[0] goto nein
50.
echo %choice2% ist keine gueltige Eingabe.
51.
goto frage
52.
:nein
Doch bevor ich Tschüss sage möchte ich mal wissen für was du diese Endlos-Schleife benötigst. Oder generell was bringt es jemanden drei mal die selbe Mittteilung zu senden?
Naja ist ja auch nicht meine Angelegenheit, meine Aufgabe habe ich erfüllt und ich hoffe ich habe geholfen.
mfg illu###e
LÖSUNG 18.12.2006 um 13:24 Uhr
Danke für eure Hilfe.
Bringen tut das nichts, klar. Es ist auch nur so ein Programm um IF befehle zu üben.
Die endlos Schleife ist dazu da Leute über LAN zu ärgern, wozu sonst? :D :D
MfG
Bringen tut das nichts, klar. Es ist auch nur so ein Programm um IF befehle zu üben.
Die endlos Schleife ist dazu da Leute über LAN zu ärgern, wozu sonst? :D :D
MfG
LÖSUNG 18.12.2006 um 17:43 Uhr
Moin Smiley,
den letzten Post von Dir interpretiere ich mal so, dass dieses Lernziel erreicht ist und setze hier mal den grünen Haken und schließe diesen Thread.
Grüße
Biber
den letzten Post von Dir interpretiere ich mal so, dass dieses Lernziel erreicht ist und setze hier mal den grünen Haken und schließe diesen Thread.
Grüße
Biber
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte