PowerShell Aufruf von einer Batch-Datei cmd - Errorlevel

 

Der Aufruf eines PowerShell-Skripts aus der Eingabeaufforderung: cmd oder über eine Batch-Datei kann über die powershell.exe erfolgen. Sollten mehrere PowerShell-Scripts gestartet werden, kann der Exitcode / das ErrorLevel pro Zeile behandelt werden. In der Batch-Datei wird dafür die Variable %errorlevel% verwendet. %errorlevel% enthält den Returncode der zuletzt ausgeführten Zeile:

Beispiel: Batch-Datei (cmd)

Die folgende Batch-Datei wird für den Aufruf zweier PowerShell-Scripts verwendet: script1.ps1 und script2.ps1. Die beiden Skripts befinden sich im selben Ordner, wie die Batch-Datei, daher werden diese aus dem aktuellen Pfad, in Batch: "%~dp0", gestartet.

  
Inhalt der Beispiel-Batch-Datei: start.cmd:

@echo off
powershell.exe -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -Command %~dp0\script1.ps1
if %errorlevel% GTR 0 exit %errorlevel%
powershell.exe -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -Command %~dp0\script2.ps1
if %errorlevel% GTR 0 exit %errorlevel%
exit 0

PowerShell Skripts:

Sollte das PowerShell-Skript script1.ps1 mit einem "exit 1" beendet werden, wird script2.ps1 in diesem Beispiel nicht mehr ausgeführt und die Batchdatei beendet sich mit dem Errorlevel von script1.ps1. Sollte sich script1.ps1 mit dem Errorlevel 0 (kein Fehler) beenden, wird script2.ps1 ausgeführt, welches wiederum im Fehlerfall die Batchdatei mit dem Errorlevel von script2.ps1 beendet. Sollten beide Skripts keinen Fehler haben, wird die Batchdatei auch mit dem Errorlevel 0 beendet.

 

 

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details