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!

Veröffentlichung: 16.09.2021 von Bernhard |🔔 | Kommentare:0

Funktionen in Batch Dateien | Windows Batch | NTFS Vererbung
PowerShell Errorhandling: Write-Debug DebugPreference | Skript Grundlagen

Top-Artikel in diesem Bereich


sleep oder wait in Batch Dateien: pause cmd

Die Funktion wait oder sleep war in BATch Dateien standardmäßig nicht vorhanden.Abhilfe schafft ein kleiner Umweg über den ping Command


Aufbau einer Batch Datei Syntax: echo off cmd

Wer eine Batch-Datei angelegt hat, kann in jede Zeile einen Befehl schreiben, siehe: wie erstelle ich eine Batch Datei - Grundlagen. Die Befehle werden beim Starten der Datei der Reihe nach ausgeführt. Das Verhalten der Ausgabe kann wie folgt angepasst werden.


cmd Befehl Windows Verwaltung: Systemsteuerung cpl und msc

CMD Befehl Windows Verwaltung: Systemsteuerung CPL und MSC

Fragen / Kommentare