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.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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
.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | Int32 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
None
Dieses Cmdlet gibt keine Ausgabe zurück.