57894
Goto Top

Batch Datei erstellen mit Optionen auswahl ,die dann ausgeführt werden.

Batch Neuling

Hallo,

würde gerne eine Batch Datei erstellen, die mir beim Start die Auswahl gibt, für:

Rechner Abmelden
Rechner Neustart
Rechner Herunterfahren

und die gewählte Option dann auch Ausführt.

Wie müsste ich die Datei erstellen?

Danke im Vorraus.

Content-ID: 74415

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

Ausgedruckt am: 22.11.2024 um 01:11 Uhr

miniversum
miniversum 25.11.2007 um 12:23:04 Uhr
Goto Top
@echo off
echo Was wollen sie tun?
echo Rechner (A)bmelden
echo Rechner (N)eustart
echo Rechner (H)erunterfahren
:auswahl
set /P wahl=Bitte waehlen: 
if /i "%wahl%"=="A" goto:abmelden  
if /i "%wahl%"=="N" goto:neustart  
if /i "%wahl%"=="H" goto:herunterfahren  
echo Falsche Auswahl!
goto:auswahl

:abmelden
shutdown -l
goto:eof

:neustart
shutdown -r
goto:eof

:herunterfahren
shutdown -s
goto:eof
miniversum
Wolf666
Wolf666 25.11.2007 um 12:28:27 Uhr
Goto Top
:anfang
echo off
echo ##############################################
echo ####                                      ####
echo ####         Bitte Auswahl treffen        ####
echo.####                                      ####
echo ####   1 = abmelden                       ####
echo ####   2 = neu starten                    ####
echo ####   3 = herunterfahren                 ####
echo ####   0 = exit                           ####
echo ####                                      ####
echo ##############################################
echo.
set /P auswahl=Bitte Auswahl treffen (1, 2, 3, oder o)


if errorlevel 4 goto abmelden
if errorlevel 3 goto neu
if errorlevel 2 goto aus
if errorlevel 1 goto exit

:abmelden
shutdown /l
goto ende

:neu
shutdown /r
goto ende

:aus
shutdown /s
goto ende

:exit
goto ende

üps da war woll einer schneller ----

[Edit Biber] Als formatiert. [/Edit]
Biber
Biber 25.11.2007 um 13:22:24 Uhr
Goto Top
Moin Haiwaldiver,

willkommen im Forum.

Zwei Anmerkungen noch von mir als einem der Moderatoren in "Batch & Shell".

Wie Du erlebt hast, bekommst Du hier auch fertige, einsetzbare Lösungen schneller als Du "Ereignisanzeigeprotokollierungsoptionsauswahl" sagen kannst.
Das spricht sehr für die Souveränität der Forumsmitglieder (THX @miniversum und THX @Wolf666).
Dennoch ist es eher ein untergeordnetes Ziel, dass hier "Fertig-Lösungen" bereitgestellt werden.
Eher erstrebenswert ist ein Erklären in der Form, dass der Fragesteller hinterher nicht nur in Lage ist, das konkrete akute Problem abzuhaken, sondern auch verstanden hat, was da passiert. Und beim nächsten Problem auch den geistigen Transfer selbst schafft.

Deshalb ist es (auch als Batch-Neuling) sinnvoller zu posten:
"Diesen Code/diese Skizze habe ich bis jetzt - nun weiß ich nicht weiter."
Eine schrittweise erweiterte/verfeinerte Lösung ist für Dich als FragestellerIn meist hilfreicher als ein professionell runtergetippter 30-Zeilen-Musterschnipsel.

Zweite Anmerkung: Bitte verkneif Dir die Formulierung "Danke im Vorraus."
Ist nicht so beliebt hier. Lieber Rückmeldung/Feedback geben.

Grüße
Biber
57894
57894 26.11.2007 um 08:25:58 Uhr
Goto Top
Hi,
egal welche Auswahl ich nehme , wird ein Shutdown ausgeführt.
Kann das an den Erweiterungen ( /l /r /s ) liegen , die nicht erkannt werden?
miniversum
miniversum 26.11.2007 um 10:55:58 Uhr
Goto Top
Also meinen hab ich getestet udn der soltle eigentlich gehen.
Bei dem von Wolf666 wird denke ich so vom ansehen her das Problem in folgendem Bereich des Codes liegen:
set /P auswahl=Bitte Auswahl treffen (1, 2, 3, oder o)


if errorlevel 4 goto abmelden
if errorlevel 3 goto neu
if errorlevel 2 goto aus
if errorlevel 1 goto exit

:abmelden
shutdown /l
goto ende
Die Eingabe wird in der Variabeln %auswahl% gespeichert, abgefragt wird aber errorlevel, der immer 0 sein sollte und ja auch nicht durch die Eingabe verändert wird.
Dadurch das vor dem :abmelden kein Rücksprung oder ein Sprung zum Ende gemacht ist, in Kombination mit dem Errorlevel der immer 0 ist und daher keine der If-Bedingungen anspricht, läuft die Batch immer in abmelden rein und Windows meldet immer den Benutzer ab.
Ersetze den shutdown mal duch ein echo, dan siehst Du was passiert.

Schau dir mal die Hilfe zu den entsprechenden Befehlen an. also set /?, shutdown /? und eventuel If /?

miniversum