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!


Top-Artikel in diesem Bereich

Preview sleep oder wait in Batch Dateien: pause cmd

sleep oder wait in Batch Dateien: pause cmd

geändert: 12.09.2017 von Bernhard (Erstveröffentlichung: 02.04.2010)

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

Preview Windows PowerShell Skript erstellen und ausführen

Windows PowerShell Skript erstellen und ausführen

geändert: 06.04.2022 von Bernhard (Erstveröffentlichung: 28.11.2012)

Im einfachsten Fall ist ein PowerShell-Skript eine Textdatei mit einer Reihe von PowerShell-Befehlen. Als PowerShell Skript versteht man eine Datei mit der Endung .ps1. Die Skriptdatei kann eine Sammlung von Befehlen, Funktionen oder Cmdlets enthalten. ... weiterlesen

Preview PowerShell Loops und Array

PowerShell Loops und Array

geändert: 25.02.2022 von Bernhard (Erstveröffentlichung: 21.03.2013)

Ein Array speichert mehrere Werte, ähnlich einer 2 spaltigen Tabelle. ... weiterlesen


Fragen / Kommentare