Set-PSDebug

Aktiviert bzw. deaktiviert Skriptdebuggingfeatures, legt die Ablaufverfolgungsebene fest und schaltet den Strict-Modus um.

Syntax

Set-PSDebug
   [-Trace <Int32>]
   [-Step]
   [-Strict]
   [<CommonParameters>]
Set-PSDebug
   [-Off]
   [<CommonParameters>]

Beschreibung

Das Set-PSDebug Cmdlet aktiviert und deaktiviert Skriptdebuggingfeatures, legt die Ablaufverfolgungsebene fest und schaltet den strikten Modus um. Standardmäßig sind die PowerShell-Debugfeatures deaktiviert.

Wenn der Parameter Trace einen Wert aufweist 1, wird jede Skriptzeile während der Ausführung nachverfolgt. Wenn der Parameter einen Wert hat 2, werden variablen Zuordnungen, Funktionsaufrufe und Skriptaufrufe ebenfalls nachverfolgt. Wenn der Parameter "Step " angegeben ist, werden Sie vor jeder Zeile des Skripts aufgefordert.

Beispiele

Beispiel 1: Festlegen der Ablaufverfolgungsebene

In diesem Beispiel wird die Ablaufverfolgungsebene auf 2, und anschließend wird ein Skript ausgeführt, das die Zahlen 1, 2 und 3 anzeigt.

Set-PSDebug -Trace 2; foreach ($i in 1..3) {$i}

DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in  >>>> 1..3) {$i}
DEBUG:     ! SET $foreach = 'IEnumerator'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $i = '1'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in 1..3) { >>>> $i}
1
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $i = '2'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in 1..3) { >>>> $i}
2
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $i = '3'.
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ($i in 1..3) { >>>> $i}
3
DEBUG:    1+ Set-PSDebug -Trace 2; foreach ( >>>> $i in 1..3) {$i}
DEBUG:     ! SET $foreach = ''.

Beispiel 2: Aktivieren des Schritts

In diesem Beispiel wird das Schrittweise ausführen und dann ein Skript ausgeführt, das die Zahlen 1, 2 und 3 anzeigt.

Set-PSDebug -Step; foreach ($i in 1..3) {$i}

Continue with this operation?
   1+ Set-PSDebug -Step; foreach ($i in  >>>> 1..3) {$i}
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): A
DEBUG:    1+ Set-PSDebug -Step; foreach ($i in  >>>> 1..3) {$i}
1
2
3

Beispiel 3: Verwenden des strikten Modus

In diesem Beispiel wird PowerShell im strikten Modus platziert und versucht, auf eine Variable zuzugreifen, die keinen zugewiesenen Wert aufweist.

Set-PSDebug -Strict; $NewVar

The variable '$NewVar' cannot be retrieved because it has not been set.
At line:1 char:22
+ Set-PSDebug -Strict; $NewVar

Beispiel 4: Deaktivieren von Debugfeatures

In diesem Beispiel werden alle Debugfeatures deaktiviert und anschließend ein Skript ausgeführt, das die Zahlen 1, 2 und 3 anzeigt.

Set-PSDebug -Off; foreach ($i in 1..3) {$i}

1
2
3

Parameter

-Off

Deaktiviert alle Skriptdebuggingfeatures.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Step

Aktiviert die Schrittausführung für Skripts. Bevor jede Zeile ausgeführt wird, fordert PowerShell Sie auf, den Status des Skripts zu beenden, fortzusetzen oder eine neue Dolmetscherebene einzugeben.

Wenn Sie den Parameter Step angeben, wird automatisch eine Ablaufverfolgungsebene festgelegt 1.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Strict

Gibt an, dass Variablen einem Wert zugewiesen werden müssen, bevor in einem Skript darauf verwiesen wird. Wenn vor der Zuweisung eines Werts auf eine Variable verwiesen wird, gibt PowerShell einen Ausnahmefehler zurück. Dieser entspricht Set-StrictMode -Version 1. Weitere Informationen finden Sie unter Set-StrictMode.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Trace

Gibt die Ablaufverfolgungsebene für jede Zeile in einem Skript an. Jede Zeile wird während der Ausführung nachverfolgt.

Die zulässigen Werte für diesen Parameter sind wie folgt:

  • 0: Deaktivieren der Skriptablaufverfolgung.
  • 1: Nachverfolgen von Skriptzeilen während der Ausführung.
  • 2: Ablaufverfolgung von Skriptzeilen, Variablenzuweisungen, Funktionsaufrufen und Skripts.
Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

None

Sie können keine Objekte an dieses Cmdlet weiterleiten.

Ausgaben

None

Dieses Cmdlet gibt keine Ausgabe zurück.