imperial-lord
Goto Top

Wie kann man mit einer Batch ein Programm mit mehrfach Auswahl programmieren?

Hallo, wie kann ich eine Mehrfachauswahl per Batch festlegen? also es soll eine frage gestellt werden. z.B.
echo "soll paint gestartet werden?"

  • für ja, drücken sie die 1
  • für nein, geben sie die 2 ein

So, und wie programmiere ich es, dass wenn die 1 gedrückt wird mspaint.exe gestartet wird oder zur 2 gesprungen wird, wo eine andere frage gestellt wird?

Und wie kann ich es einstellen das nur das Ergebnis eines Befehls und nicht der Befehl selbst angezeigt wird.
Also als Beispiel:
Wenn sie ihre ip erfahren möchten, drücken sie die 1, falls nicht drücken sie die 2
1= echo ipconfig <<< hier leider wird nur der Befehl aber NICHT das Ergebnis angezeigt 8-(
2= exit

mfg

Content-Key: 24987

Url: https://administrator.de/contentid/24987

Printed on: April 16, 2024 at 12:04 o'clock

Member: duddits
duddits Feb 01, 2006 at 15:42:18 (UTC)
Goto Top
Hi,

du kannst das folgender maßen lösen. Hier mal ein Beispiel:

@echo off
:begin
cls
{{comment_single_line_double_colon{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}}}
title Choiser

ECHO --------------------------------------------------------
ECHO -------------- Choiser -------------------------------
ECHO --------------------------------------------------------
ECHO;
ECHO;
ECHO (1)  IP Adresse
ECHO (2)  Netzwerkumgebung
ECHO (3)  Paint
ECHO (0)  Beenden

ECHO;
set /P X= Waehlen Sie eine Option?
if /I "%X%"=="1" goto {{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}  
if /I "%X%"=={{comment_strings{{comment_single_line_double_colon:3}}2750222264}} goto {{comment_single_line_double_colon:3}}  
if /I "%X%"=="3" goto :3  

ECHO Programm wird beendet...
PAUSE >NUL
Exit

{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}
ipconfig /all
goto neu

{{comment_single_line_double_colon:3}}
net view
goto neu

:3
%SystemRoot%\System32\mspaint.exe
goto begin


Hi das sollte eingentlich schon als kleines Beispiel reichen.

Zu der 2. Frage muss ich erstmal selber nachschauen

mfg duddits
Member: imperial-lord
imperial-lord Feb 01, 2006, updated at Mar 08, 2023 at 07:08:55 (UTC)
Goto Top
bevor du zu meiner zweiten frage kommst, was bedeutet
ECHO; set /P X= Waehlen Sie eine Option?     <<< set /P X=


Was bedeutet das?
Member: filippg
filippg Feb 01, 2006 at 18:54:42 (UTC)
Goto Top
hallo,

was set... bedeutet erfährst du in der Windows-Hilfe unter "set" (Edit: am besten mal nach "Befehlszeilenreferenz" suchen, und diese dann gleich den Favoriten hinzufügen).
Zur zweiten Frage: versuche mal die Direktive "@Echo off" (am besten in der ersten Zeile des Skripts.

Filipp
Member: duddits
duddits Feb 01, 2006 at 19:40:25 (UTC)
Goto Top
Hi,

also ECHO; oder auch echo; sorgt dafür, das ich eine leere Zeile habe.
Mit set werden Variabeln gesetzt, mittels set /p legt man den Wert einer Variabel auf einer Eingabezeile fest. Das heißt ich lege hier im Beispiel mit set /p x= Wählen Sie eine Option: fest, dass alles welches in der Zeile nachher in der Konsole eingeben wird, in der Variabel X gespeichert wird.

Achso es ist egal ob klein- oder groß-Schreibung verwendet wird.

mfg duddits
Member: imperial-lord
imperial-lord Feb 01, 2006 at 21:05:07 (UTC)
Goto Top
gut und zur zweiten frage:
und wie kann ich es einstellen das nur das ergebnis eines befehls und nicht der befehl selbst angezeigt wird.
also als beispiel:
wenn sie ihre ip erfahren möchten, drücken sie die 1, falls nicht drücken sie die 2
1= echo ipconfig <<< hier leider wird nur der befehl aber NICHT das ergebnis angezigt 8-(
2= exit


p.s. gibt es auch eine art taschenrechnerfunktion bei der batch, also wenn ich zahlen ausrechnen will?
Member: filippg
filippg Feb 01, 2006 at 21:51:07 (UTC)
Goto Top
1= echo ipconfig <<< hier leider
wird nur der befehl aber NICHT das ergebnis
angezigt 8-(

Das ist auch kein Wunder: Echo ist ein Befehl, und das Ipconfig wird lediglich als Parameter für diesen aufgefasst. Also wird nur der String "ipconfig" ausgegeben, aber nicht das Programm ipconfig ausgeführt. Lass einfach das "echo" weg. Und wenn du davor noch ein "@" machst, sollte nur noch die Ausgabe von ipconfig, nicht jedoch sein Aufruf angezeigt werden.

Filipp