Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst IF Befehl, wie funktioniert er?

Mitglied: Smiley

Smiley (Level 1) - Jetzt verbinden

16.12.2006, aktualisiert 18.12.2006, 13876 Aufrufe, 17 Kommentare

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
Mitglied: illuzione
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
mh der nimmt diese striche nicht

http://www.illuziown.org/code.txt
so solls aussehen

hoffe es hilft

mfg illu###e
Bitte warten ..
Mitglied: Dani
16.12.2006 um 22:15 Uhr
Abend,
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.
....
Gruß
Dani
Bitte warten ..
Mitglied: Smiley
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
Wenn antwort nicht gleich ist mit ´´, setzte var=%var:~0.1%??
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
Bitte warten ..
Mitglied: miniversum
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
Bitte warten ..
Mitglied: Smiley
17.12.2006 um 13:49 Uhr
Danke, ihr habt mir sehr geholfen.

MfG
Bitte warten ..
Mitglied: illuzione
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% 
Wenn %var% nicht leer ist, dann macht er mit denn ifs unten drunter weiter, ansonsten überspringt er die ifs und macht das was drunter steht, in dem Fall: er geht wieder zur Frage zurück.

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.
So hätten wir auch das gelöst. Wenn du nichts eingibst beziehungsweise etwas falsches dann sagt er: "Bitte nur 0-3 eingeben" und fragt dich erneut.

Hoffe hat geholfen
mfg illu###e
Bitte warten ..
Mitglied: Smiley
17.12.2006 um 14:20 Uhr
Wenn es jemanden interessiert hier ist der Quellcode:

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
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
Bitte warten ..
Mitglied: illuzione
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
Bitte warten ..
Mitglied: miniversum
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
Bitte warten ..
Mitglied: Smiley
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
Bitte warten ..
Mitglied: miniversum
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
Bitte warten ..
Mitglied: illuzione
17.12.2006 um 17:03 Uhr
Hallo Smiley,
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
Schau dir mal folgendes Beispiel an, hoffe es wird deutlich.

mfg illu###e
Bitte warten ..
Mitglied: Smiley
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
Bitte warten ..
Mitglied: illuzione
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.
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
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:
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
FALSCH:
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
Du wirst sehen die Ausgaben unterscheiden sich.

mfg illu###e
Bitte warten ..
Mitglied: illuzione
17.12.2006 um 20:56 Uhr
Hallo Smiley,
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
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
Bitte warten ..
Mitglied: Smiley
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
Bitte warten ..
Mitglied: Biber
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
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Set-Befehl funktioniert nicht
gelöst Frage von DschingisBatch & Shell7 Kommentare

Hallo zusammen, ich bin geraden dabei ein Programm zu erweitern. Dieses Programm soll das Feld "MobilePhone" im AD füllen. ...

VB for Applications

Shell Befehl funktioniert manchmal, manchmal nicht

Frage von donky2000VB for Applications4 Kommentare

Hallo zusammen, wenn ich neue PCs installiere rufe ich die zu instllierenden Programme per Makro aus Excel 2010 auf. ...

Windows Netzwerk

Copy Befehl in einer batch funktioniert nicht.

gelöst Frage von Pauli-HWindows Netzwerk3 Kommentare

Hallo zusammen. Folgender Befehl will die Datei nicht kopieren, weil sie nicht existieren soll. DIe Datei ist in dem ...

Batch & Shell

Batchdatei: SET-Befehl funktioniert in IF ELSE nicht

Frage von Alicudi2000Batch & Shell9 Kommentare

Guten Tag In einer CMD-Batchdatei musste ich den Quellcode ändern, weil ich keine Variable im ELSE-Teil definieren konnte. Einen ...

Neue Wissensbeiträge
Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 9 StundenWindows 101 Kommentar

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 11 StundenSicherheit5 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Microsoft Office
TEAMS - Skype for business
Tipp von Nebellicht vor 11 StundenMicrosoft Office

Hallo, ms ersetzt Skype for business durch TEAMS. Also, nicht wundern wenn mit der OFFICE365 Umgebung kein Skype for ...

Windows 10

Windows 10: Cortana und die Suche gehen bald wieder eigene Wege

Information von Frank vor 15 StundenWindows 102 Kommentare

Microsoft hat einen neuen Insider Build von Windows 10 veröffentlicht (Fast Ring, Version 18317), wo die digitale Assistentin "Cortana" ...

Heiß diskutierte Inhalte
Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server23 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Switche und Hubs
Medienkonverter mit 12 oder 24 Ports gesucht
Frage von wmuellerSwitche und Hubs21 Kommentare

Guten Morgen, ich bin auf der Suche nach einem größeren Medienkonverter, der "stumpf" 1:1 die Ports auf über ein ...

Debian
OpenSSH Login mit Public Key schlägt fehl, mit Passwort funktioniert
gelöst Frage von DKowalkeDebian19 Kommentare

Hallo zusammen, ich hatte hier schon nach einer Anleitung für einen SFTP Server mit Linux gefragt, habe dort auch ...

Windows 10
VM wächst schnell von 14 auf 35 GB an - warum?
Frage von degudejungWindows 1018 Kommentare

Hallo, ich bin ein Freund schlanker VMs und setze daher gerne mit dem Erscheinen einer neuen Win10 Version - ...