Udostępnij za pośrednictwem


Set-PSDebug

Włącza i wyłącza funkcje debugowania skryptów, ustawia poziom śledzenia i przełącza tryb ścisły.

Składnia

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

Opis

Polecenie Set-PSDebug cmdlet włącza i wyłącza funkcje debugowania skryptów, ustawia poziom śledzenia i przełącza tryb ścisły. Domyślnie funkcje debugowania programu PowerShell są wyłączone.

Gdy parametr Trace ma wartość 1, każdy wiersz skryptu jest śledzony podczas jego uruchamiania. Gdy parametr ma wartość 2, przypisania zmiennych, wywołań funkcji i wywołań skryptu są również śledzone. Jeśli określono parametr Krok, zostanie wyświetlony monit przed uruchomieniem każdego wiersza skryptu.

Przykłady

Przykład 1. Ustawianie poziomu śledzenia

Ten przykład ustawia poziom śledzenia na 2wartość , a następnie uruchamia skrypt, który wyświetla liczby 1, 2 i 3.

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 = ''.

Przykład 2. Włączanie kroków

W tym przykładzie włącza się krok po kroku, a następnie uruchamia skrypt, który wyświetla liczby 1, 2 i 3.

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

Przykład 3. Używanie trybu ścisłego

W tym przykładzie program PowerShell jest w trybie ścisłym i próbuje uzyskać dostęp do zmiennej, która nie ma przypisanej wartości.

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

Przykład 4. Wyłączanie funkcji debugowania

Ten przykład wyłącza wszystkie funkcje debugowania, a następnie uruchamia skrypt, który wyświetla liczby 1, 2 i 3.

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

1
2
3

Parametry

-Off

Wyłącza wszystkie funkcje debugowania skryptu.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Step

Włącza przechodzenie skryptu. Przed uruchomieniem każdego wiersza program PowerShell wyświetli monit o zatrzymanie, kontynuowanie lub wprowadzenie nowego poziomu interpretera w celu sprawdzenia stanu skryptu.

Określenie parametru Krok powoduje automatyczne ustawienie poziomu śledzenia .1

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Strict

Określa, że zmienne muszą mieć przypisaną wartość przed odwołaniem do skryptu. Jeśli zmienna jest przywołyowana przed przypisaną wartością, program PowerShell zwraca błąd wyjątku. Jest to odpowiednik Set-StrictMode -Version 1elementu . Aby uzyskać więcej informacji, zobacz Set-StrictMode.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Trace

Określa poziom śledzenia dla każdego wiersza w skrycie. Każdy wiersz jest śledzony podczas jego uruchamiania.

Dopuszczalne wartości tego parametru są następujące:

  • 0: Wyłącz śledzenie skryptów.
  • 1: Śledzenie wierszy skryptu podczas ich uruchamiania.
  • 2: Śledzenie wierszy skryptów, przypisań zmiennych, wywołań funkcji i skryptów.
Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

Nie można potokować obiektów do tego polecenia cmdlet.

Dane wyjściowe

None

To polecenie cmdlet nie zwraca żadnych danych wyjściowych.