
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