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 2
festgelegt, 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.