Batch, findet jemand den Fehler?

... komplette Frage anzeigen

3 Antworten

Versuch's mal mit dem hier:

if errorlevel 1 (
cls

pause >nul
exit /b %ERRORLEVEL%
)

Bei dieser speziellen Syntax ist keine Variablen-Kennzeichnung erforderlich.

Hier ist auch kein "errorlevel 0" erforderlich, da dieser Ausdruck das gleiche bedeutet wie:

if %ERRORLEVEL% geq 1 (…

geq = greater or equal

Der Zusatz "exit /b …" besagt, dass die Batch an dieser Stelle beendet wird und der von "shutdown" empfangene ERRORLEVEL außerhalb der Batch an die Befehlszeile zurück gegeben wird.

––––––––––

Allerdings hat dieses Script einen kleinen Haken:

Es arbeitet synchron.

D.h., dass alles nach "shutdown" erst dann weiter verarbeitet werden kann, wenn dieser Befehl beendet wurde. In diesem Fall kommt es auf die Windows-Version an, wie weiter verfahren wird. Dies kann dann u.U. bedeuten, dass der SHUTDOWN-Befehl scheitert, weil immer noch die Batch läuft und einen Handle zum aufgerufenen SHUTDOWN-Befehl offen hält.

Es kann aber auch sein, dass der SHUTDOWN-Befehl alle offenen Prozesse schließt (inkl. dieser Batch) und dann kann ein weiteres Versagen des SHUTDOWN-Befehls nicht mehr durch die Batch abgefangen werden.

Also, ist diese Art des Abfangens des Errorlevels nicht praktikabel oder nur unter bestimmten Bedingungen.

Versuch doch mal diesen hier:

start /WAIT shutdown -a

Ehrlich gesagt, kann ich Dir gerade nicht voraussagen, ob dieser Befehl funktioniert, weil ich damit noch nie experimentiert habe. Aber falls Dein Job mit Batch überhaupt machbar ist, dann nur so.

Ansonsten würde ich empfehlen, es einmal mit VBScript und WMI zu versuchen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von priesterlein
23.10.2016, 09:53

Sicher kommt es im Anwendungsfall eines Shutdown gar nicht erst zum Aufruf dieser Batch, die den Shutdown ja abbrechen (-a) soll, denn das System lässt das nicht mehr zu. Aber ob der Frager das meinte, dass er das Problem hat, dass seine Batch nicht mehr gestartet und interpretiert werden kann?

1

Was ist denn das Problem? Was geht denn nicht?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Aykut1112
23.10.2016, 13:52

Er zeigt den Text nicht an: 

 Das Herunterfahren des Systems konnte nicht abgebrochen werden, da das System zurzeit nicht heruntergefahren wird.
0

Eigentlich sollte es da kein Fehler geben, was spuckt es denn aus? 

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Aykut1112
23.10.2016, 13:50

Es zeigt einfach den Text nicht an :/

 Das Herunterfahren des Systems konnte nicht abgebrochen werden, da das System zurzeit nicht heruntergefahren wird.
0
Kommentar von Aykut1112
23.10.2016, 13:59

Klappt jetzt! :D

0

Was möchtest Du wissen?