Betriebssysteme, Programme & Web

Batch-Datei mit Auswahlmenü

In diesem Tutorial möchte ich euch zeigen, wie ihr eine Batch-Datei mit Auswahlmenü erstellt. Das ganze kann für unterschiedliche Sachen benutzt werden. Ich zum Beispiel benutze es um ArmA 2 Server mit verschiedenen Parametern zu starten, denn normalerweise bräuchte ich dafür mehrere einzelne .bat-Files.

Das Tutorial werde ich wie immer Schritt für Schritt erklären, um auch die einzelnen Befehle und deren Bedeutung zu erklären. Die Bedeutung wird nicht ausführlich sein, da ich selber erst vor ein paar Tagen angefangen habe mit Batch-Files zu arbeiten.

Schritt 1:

Zuerst benötigen wir ein Batch-File. Dazu einfach ein neues Textdokument an einem beliebigen Ort erstellen. Der Name dieser Datei müsste nun „Neues Textdokument.txt sein. Solltet ihr die Dateiendungen ausgeblendet haben, könnt ihr in diesem Tutorial erfahren, wie ihr sie wieder einblendet.

Weiter im Kontext. Ihr benennt diese Datei nun um, in meinem Fall einfach in „tutorial.bat“.

Schritt 2:

Kommen wir nun zum eigentlichem „Code“. Da ich für verschiedene Sachen Batch-Files benutze, schreibe ich am Anfang gerne hin, wofür ich die Datei eigentlich benötigen. Angefangen wird mit:

// Hier beginnt unser Skript
@echo off
echo.
echo Hier steht der Tutorialtext
pause

Erklärung:

„@echo off“ verhindert, dass Kommandos in der Befehlszeile angezeigt werden. Das passiert solange bis wieder @echo on geschrieben wird.

„echo.“ braucht ihr einfach nur für eine Leerzeile.

„echo Hier steht der Tutorialtext“ gibt in der Befehlszeile einen Text aus, auch wenn vorher „@echo off“ geschrieben wurde.

„pause“ wird gebraucht, wenn ihr, bevor der nächste Schritt passieren soll, erst einmal bestätigen wollt.

Schritt 3:

Kommen wir nun zum Auswahlmenue (in Batch-Files wird kein ö,ü,ä erkannt).  Das ganze ist ein wenig schwerer zu erklären und mein Code ist bestimmt ein wenig wirr, aber ich versuche meine Befehlsfenster immer ein wenig frei und sauber zu halten.

// Der Mittelteil mit dem Auswahlmenu
:Auswahlmenu
cls
echo.
echo Auswahlmenue
echo ===========
echo.
echo [1]Auswahl 1
echo [2]Auswahl 2
echo [3]Auswahl 3
echo [a]Auswahl 4
echo [b]Auswahl 5
echo [c]Auswahl 6
echo.

set asw=0
set /p asw="Bitte eine Auswahl treffen: "

if %asw%==1 goto Auswahl1
if %asw%==2 goto Auswahl2
if %asw%==3 goto Auswahl3
if %asw%==a goto Auswahl4
if %asw%==b goto Auswahl5
if %asw%==c goto Auswahl6
goto END

Erklärung:

„:Auswahlmenu“ – Deklariert einfach einen Abschnitt mit einem Namen, zu dem gesprungen werden kann.

„cls“ bedeutet „clear screen“ und säubert die Befehlszeile vom vorherigen Text.

„echo [1]Auswahl 1“ – So sollte euer Auswahlmenü auch aufgebaut sein, einfach des Verständnisses wegen.

„set asw=0“ – Mit diesem Befehl leiten wir die Verarbeitung der Benutzereingabe ein und unser Wert „asw“ wird definiert.

„set /p asw=xxx“ – Mit der Option „/p“ wird eine Variable definiert und der Benutzereingabe zu geordnet.

„if %asw%==1 goto Auswahl1“ – Sollte eigentlich fast selbsterklärend sein. „Wenn „asw“ als 1 definiert wird, gehe zu Auswahl1″.

„goto END“ – Sollte eine falsche Auswahl getroffen werden, z.B „5“, wird ans Ende gesprungen.

Schritt 4:

Nun zum Abschluss unserer Skriptes. Wir müssen nurnoch definieren, „wohin“ gesprungen werden soll und was dort passieren soll. Das ganze werde ich jetzt aber abkürzen, weil es selbest erklärend ist.

// Der Endteil mit den definierten Funktionen für die Auswahl 1 und das Ende des Skriptes
:Auswahl1
cls
echo.
echo Du hast die erste Auswahl getroffen.
pause
goto END (oder goto Auswahlmenu)

:END
cls
echo Unser Skript ist jetzt beendet
pause

Hier muss eigentlich nicht mehr viel beschrieben werden, da alles schon vorgekommen ist. Solltet ihr anstatt „goto END“ „goto Auswahlmenu“ genommen haben, werdet ihr am Ende der Ausgabe von Auswahl 1 wieder ins Auswahlmenu gelangen. Dort kann man jetzt noch einen weiteren Punkt hinzufügen, um das Skript aus dem Menu heraus zu beenden. Das ganze seht ihr nun im fertigen Skript mit dem ich meine Server starte.

// Beginn des Skriptes (Wofuer?)
@echo off
echo.
echo Start-Skript für alle auf diesem liegenden Server
pause

// Mittelteil mit Auswahlmenu
:Auswahlmenu
cls
echo.
echo Auswahlmenu
echo ==========
echo.
echo [1]ArmA 2: Nightstalker
ping -n 1 localhost>nul
echo.
echo [2]ArmA 2: Coop
ping -n 1 localhost>nul
echo.
echo [3]ArmA 2:Stalker
ping -n 1 localhost>nul
echo.
echo [4]ArmA 2: DayZ Coop
ping -n 1 localhost>nul
echo.
echo [5]ArmA 3 Server
ping -n 1 localhost>nul
echo.
echo [6]Auswahl 6
ping -n 1 localhost>nul
echo.
echo Um das Skript zu beenden: ende
echo.
set asw=0
set /p asw="Bitte ein Auswahl treffen: "

if %asw%==1 goto Server1
if %asw%==2 goto Server2
if %asw%==3 goto Server3
if %asw%==4 goto Server4
if %asw%==5 goto Server5
if %asw%==6 goto Server6
if %asw%==ende goto END
goto END

// Ende des Skripts

:Server1
cls
echo.
echo Du hast den ersten Server gewählt!
C:\A2Server\arma2oaserver.exe -port=2302 -name=server -profiles=server -cfg=server\basic.cfg -config=server\server.cfg -mod=@NC;
echo.
pause
goto Auswahlmenu

:Server2
cls
echo.
echo Du hast den zweiten Server gewählt!
C:\A2Server\arma2oaserver.exe -port=2302 -name=server -profiles=server -cfg=server\basic.cfg -config=server\server.cfg -mod=@CBA;@CBA_A2;@CBA_OA;@ACE;
echo.
pause
goto Auswahlmenu

:Server3
cls
echo.
echo Du hast den dritten Server gewählt!
C:\A2Server\arma2oaserver.exe -port=2302 -name=server -profiles=server -cfg=server\basic.cfg -config=server\server.cfg -mod=@CBA;@CBA_A2;@CBA_OA;@ACE;@STALKER;
echo.
pause
goto Auswahlmenu

:Server4
cls
echo.
echo Du hast den vierten Server gewählt!
C:\A2DayzCoop\server.bat
echo.
pause
goto Auswahlmenu

:Server5
cls
echo.
echo Du hast den fünften Server gewählt!
C:\A3server\a3files\arma3server.exe -port=2302 -name=server -profiles=server -cfg=server\basic.cfg -config=server\server.cfg -world=empty
echo.
pause
goto END

:Server6
cls
echo.
echo Du hast den sechsten Server gewählt!
echo.
pause
goto Auswahlmenu

:END
echo.
echo Alle server heruntergefahren
pause

Lukas Heinrichs

Mitgründer von Basic-Tutorials.de und leidenschaftlicher Zocker und zusätzlich noch Redakteur für den Blog, hält mich meistens mein Arbeitsleben von Unmengen an Artikel ab.

Ähnliche Artikel

Schreibe einen Kommentar

Schaltfläche "Zurück zum Anfang"