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, przypisań 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 2, 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 krokowania

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.

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

-Step

Włącza krok skryptu. Przed każdym uruchomieniem wiersza program PowerShell monituje o zatrzymanie, kontynuowanie lub wprowadzenie nowego poziomu interpretera w celu sprawdzenia stanu skryptu.

Określenie parametru Krok automatycznie ustawia poziom śledzenia .1

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

-Strict

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.
Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

None

Nie można potoku wprowadzić danych wejściowych do tego polecenia cmdlet.

Dane wyjściowe

None

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