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 eine endlos schleife mit For in batch menü einbauen

Mitglied: L4a-Thompson

L4a-Thompson (Level 1) - Jetzt verbinden

27.08.2005, aktualisiert 28.07.2006, 16146 Aufrufe, 6 Kommentare

01.
@echo off
02.
Title Programm Center v3.0 Produced by Thompson
03.
setlocal
04.
:menue
05.
cls
06.
color 60
07.
echo LAN-4-ALL Teamspeak Server (Channel Wahl)
08.
echo ==========================
09.
echo 1 Ruheraum 
10.
echo 2 Battlefield 2 
11.
echo 3 GOF - LTP
12.
echo 4 Laberecke
13.
echo 5 Eigener Testserver (Eingang)
14.
echo.
15.
echo --------------------------------------------------------------------------------
16.
echo Weitere Optionen ausfuehren
17.
echo ===========================
18.
echo iBackup, oodag Prozess Kill`n   (k)
19.
echo alle Task Processe anzeigen     (t)
20.
echo DFUE und Teamspeak channel(1-4) (d) ICQ und xFire starten automatisch
21.
echo Antivir Guard Aktivieren?       (j)
22.
echo "O&O" Defrag  Aktivieren        (a)
23.
echo Manuelle Befehlseingabe         (cmd)
24.
echo PC in XX Minuten (h)erunterfahren / Herunterfahren a(b)brechen / (n)eu starten
25.
echo.
26.
echo              =======================           =====================
27.
echo               PROGRAMM VERLASSEN: 0             Weitere Optionen: w
28.
echo              =======================           =====================
29.
echo.
30.
 
31.
set /p AuswahlEingabe=Aktion Auswaehlen: 
32.
 
33.
REM --------------------------------------------------------------------------------------------------------------
34.
For /F %AuswahlEingabe neq  IN (1 2 3 4 5 0 k t d1 d2 d3 d4 j a h b n cmd w) do goto menue
35.
 
36.
if "%AuswahlEingabe%" equ "1" goto Ruheraum
37.
if "%AuswahlEingabe%" equ "2" goto BF2
38.
if "%AuswahlEingabe%" equ "3" goto GOF - LTP
39.
if "%AuswahlEingabe%" equ "4" goto Laberecke
40.
if "%AuswahlEingabe%" equ "0" goto EXIT
41.
 
42.
 
43.
if "%AuswahlEingabe%" equ "5" goto Eigener
44.
 
45.
 
46.
if "%AuswahlEingabe%" equ "k" goto Prozesse
47.
if "%AuswahlEingabe%" equ "t" goto Task
48.
if "%AuswahlEingabe%" equ "d1" call :DFUER
49.
if "%AuswahlEingabe%" equ "d2" call :DFUEB
50.
if "%AuswahlEingabe%" equ "d3" call :DFUEG
51.
if "%AuswahlEingabe%" equ "d4" goto DFUEL
52.
if "%AuswahlEingabe%" equ "j" goto Antivir
53.
if "%AuswahlEingabe%" equ "a" goto defrag
54.
if "%AuswahlEingabe%" equ "h" goto Herunterfahrer
55.
if "%AuswahlEingabe%" equ "b" goto abbrechen
56.
if "%AuswahlEingabe%" equ "n" goto neustart
57.
if "%AuswahlEingabe%" equ "cmd" goto CMD
58.
if "%AuswahlEingabe%" equ "w" goto menue2
also dast ist mein erstes menü wenn ich einfach enter drücke oder eine andere variable dann schließ sich die batch datei um dies zu verhindern möchte ich mit dem For string eine endlos schleife einbauen wenn nicht genau das gedrückt wir was ich zur verfügung stelle dann soll sie einfach zum menue zurück springen oder einen anderen befahl ausführen hab damit mal angefangen aber klappt nicht so ganz

was mach ich nun wieder falsch
Mitglied: Biber
27.08.2005 um 13:31 Uhr
Moin, L4A-Thompson,

sind nur Syntax-Fehler, keine Denkfehler..

For /F %AuswahlEingabe neq IN (1 2 3 4 5 0 k t d1 d2 d3 d4 j a h b n cmd w) do goto menue

1) FOR.. IN.. DO ist schon richtig, aber nicht mit Parameter /F.. der ist für Datei-Verarbeitung

2) und dann ist die Syntax sinngemäß...
FOR %%i in ( ....2 3 4 5..a b c...) DO was-auch-immer ..............mit einer Zählvariablen %%i
( Die kann auch %%a... %%z, %%A... %%Z und noch ein paar undokumentierte heißen, aber
IM BATCH IMMER mit ZWEI %-Zeichen (%%) )

3) und in dieses "was-auch-immer" gehört das "GOTO irgendwo"

4) aber erst, wenn Du alle Werte in der Liste/in der Klammer einmal verglichen hast ODER einen gültigen Wert gefunden hast. Ich würde die Logik an dieser Stelle umdrehen...
-> wenn gültige Eingabe --> gehe (springe zu) :weiter_BraverUser
-> wenn keine gültige Eingabe -> zurück zum Menu

also, alles zusammen:
01.
..
02.
FOR %%i  IN (1 2 3 4 5 0 k t d1 d2 d3 d4 j a h b n cmd w) DO IF /i  [%%i] EQU [%AuswahlEingabe%] goto Weiter_BraverUser
03.
:DummUser 
04.
goto menue "wer nicht tippen kann, muss es lernen"
05.
-------------- bissken Prosa
06.
und in diese Zeile kommt niemand, hier kann ich alles an Kommentar unterbringen.
07.
der Batch (und der User) können beide nur bei ":DummUser" oder bei ":weiter_BraverUser"  weiterlaufen. 
08.
Und ":DummUser" ist nur als eine Sprungmarke definiert, damit es keinen Syntaxfehler gibt. Könnte auch ein "Rem " davorstehen oder die Zeile ganz fehlen.
09.
... und weiter gehts
10.
 
11.
:weiter_BraverUser
12.
...
13.
... (wie bei Dir unter der For-Schleife)
HTH Biber
Bitte warten ..
Mitglied: L4a-Thompson
27.08.2005 um 14:10 Uhr
es geht leider nicht mit deinem
For string
werde aber auch noch weiter probieren wann ich es hinbekomme werde ich den fertigen string posten falls ich ihn mal vordir hinbekommen sollte *g

noch jemand andere vorschläge?
Bitte warten ..
Mitglied: mr.sebi-man
29.08.2005 um 10:50 Uhr
ruf doch einfach die batch - datei am ende wieder auf, damit musst du keine schleife einbauen, und zum beenden einfach ne neue sprungmarke, die nach dem neuaufruf läuft.
also z.B. so

Skript
skript.bat

:GOTO Exit
Rem hier bleibt einfach leer, d.h. das skript wird beendet.
Bitte warten ..
Mitglied: Biber
29.08.2005 um 11:06 Uhr
@mr. sebi-man

na., dann wäre es aber noch einfacher, das FOR..IN..DO..-Konstrukt ganz wegzulassen und nach den Verarbeitungszeilen ein "goto nachoben" zu schreiben:
....
if "%AuswahlEingabe%" equ "n" goto neustart
if "%AuswahlEingabe%" equ "cmd" goto CMD
if "%AuswahlEingabe%" equ "w" goto menue2

goto menue
Deine Variante ginge natürlich auch. Aber ich vermute, dass die "goto label"-Mimik vor ein paar Jahrzehnten in die damaligen DOS-Befehle eingebaut wurde, um genau das (Endlosschleife durch Sich-Selbst-Aufrufen) zu vermeiden.

Abgesehen davon bekommen wir sicherlich auch diese FOR..In..DO Schleife zum Fliegen, wenn wir uns richtig anstrengen.
Bitte warten ..
Mitglied: mr.sebi-man
29.08.2005 um 12:38 Uhr
@Biber
soviel ich weiß funktioniert das GOTO nur, wenn die Sprungmarke weiter unten ist, also ein Sprung nach oben nicht möglich ist.

Sicher ist die Schleifenlösung besser aber da kenn ich mich net so gut aus...
Bitte warten ..
Mitglied: Biber
29.08.2005 um 13:46 Uhr
@mr.sebi-man
Nein, GOTO funktioniert nicht nur nach unten. Bei jedem "GOTO Label" bzw "call :Label" durchsucht der CMD-Interpreter die gesamte *bat/*.cmd-Datei von oben angefangen bis zum Ende ab auf die Zeichenkette ":Label" am Zeilenanfang. War seit DOS 2.11 so. Seit neuestem liest der CMD-Interpreter von der Zeile an, in der er ein Goto findet bis unten, danach wieder vom Dateianfang aus.


( Anekdote dazu: zwischenzeitlich ist in WinXP mal ein neuer Bug reingekommen. Falls jemand versehentlich einen Label-Namen doppelt vergibt, sollte es nach meiner Aussage ja so sein, das immer das erste gefundene genommen wird. Syntaxfehler gibt es nie, weil die Suche ja in dieser Zeile mit einem "Gefunden" beendet wird.
Bsp.
01.
::...... LabelTest.Bat
02.
@echo off
03.
GOTO labelA
04.
 
05.
:BACK_From_A
06.
Echo Bin Bäck von LabelA
07.
GOTO labelB
08.
 
09.
:back_from_B
10.
Echo Bin Bäck von LabelA und LabelB
11.
goto ende
12.
 
13.
[Raum für Notizen]
14.
--
15.
:LabelA
16.
echo Hallo, hier Label A - das Original
17.
goto :Back_from_A
18.
 
19.
:LabelB
20.
echo Hallo, hier Label B 
21.
GOTO LabelA
22.
 
23.
:LabelA
24.
REM Das ist //eigentlich// unerreichbar...;-)
25.
echo Hallo, hier Label A - das unerreichbare Duplikat
26.
:ende
Bei WinXP wird folgndes erzeugt:
01.
>labeltest
02.
Hallo, hier Label A - das Original
03.
Bin Bäck von LabelA
04.
Hallo, hier Label B
05.
Hallo, hier Label A - das unerreichbare Duplikat
D.h. der CMD-Interpreter von XP sucht von der ZeileX+1 an, wenn er in ZeileX aufgerufen wird. Wenn er dann nichts findet, liest er noch mal die *.bat-Datei von oben an. Derselbe
*.bat liefert unter 98 / NT noch andere Ergebnisse *gg.
Aber, wie zu sehen ist, springt er auch munter zurück z.B. zu :back_from_A

*ende der Anekdote)
Bitte warten ..
Ähnliche Inhalte
PHP
Vom MD Array zum Menu
gelöst Frage von pcguyPHP7 Kommentare

Hallo zusammen, ich versuche aus einem MD Array ein Menu zu generieren. Dazu habe ich folgende Ausgabe: Ich kriege ...

CMS

Modul ins MENU hinzufügen Joomla 3.5.1

Frage von sbsnewbieCMS

Moin Leude, hat jemand von Euch eine Idee, wie man ein Modul in das MENU integrieren kann, kann auch ...

Windows 10

Nahezu endlos viele Kopien von "Anwendungsdaten"

Frage von spinnifexWindows 1011 Kommentare

Hallo allerseits, die Systeminfo vorab: tagesaktuelles Win10 pro (ohne Domäne), ein Benutzer, Hardware für dieses Problem vermutlich irrelevant. Problem: ...

Visual Studio

Simples asp.net menu selbst erstellen

gelöst Frage von Herbrich19Visual Studio22 Kommentare

Hallo, Ich möchte gerne eine eigenes ASP.NET Menü Steuerelement erstellen was einfachen HTML Code rendert. Ich möchte ein HTML5 ...

Neue Wissensbeiträge
Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 3 StundenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 3 TageniOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 3 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 6 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Heiß diskutierte Inhalte
Windows Server
Einziger Domänencontroller ersetzen - Windows Server 2012R2 - Hostname
Frage von DeRo93Windows Server26 Kommentare

Guten Tag, Leider haben wir einen Domänencontroller dessen Komponentenspeicher defekt ist. Alle Maßnahmen sind da leider fehlgeschlagen. Nun wurde ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware20 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server18 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...

Windows Update
Fehler bei Updates über WSUS
Frage von Hendrik2586Windows Update11 Kommentare

Guten Tag liebe Kolleginen und Kollegen, lang lang ist meine letzte Anfrage her. Hier etwas das mich nun schon ...