Freigeben über


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 Trace-Parameter den Wert hat 1, wird jede Skriptzeile während der Ausführung nachverfolgt. Wenn der Parameter den Wert hat 2, werden auch Variablenzuweisungen, Funktionsaufrufe und Skriptaufrufe nachverfolgt. Wenn der Step-Parameter angegeben ist, werden Sie aufgefordert, bevor jede Zeile des Skripts ausgeführt wird.

Beispiele

Beispiel 1: Festlegen der Ablaufverfolgungsebene

In diesem Beispiel wird die Ablaufverfolgungsebene auf 2festgelegt, 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 Schrittschritts

In diesem Beispiel wird das Schrittschritten aktiviert 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 in den strikten Modus versetzt 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, werden Sie von PowerShell aufgefordert, den Status des Skripts zu beenden, fortzufahren oder eine neue Interpreterebene einzugeben.

Wenn Sie den Step-Parameter angeben, wird automatisch die 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 einen 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 Sie die Skriptablaufverfolgung.
  • 1: Nachverfolgen von Skriptzeilen, während sie ausgeführt werden.
  • 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 übergeben.

Ausgaben

None

Dieses Cmdlet gibt keine Ausgabe zurück.