Поделиться через


Set-PSDebug

Включает и отключает функции отладки скриптов, задает уровень трассировки и переключает строгий режим.

Синтаксис

on

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

off

Set-PSDebug
    [-Off]
    [<CommonParameters>]

Описание

Командлет Set-PSDebug включает и отключает функции отладки скриптов, задает уровень трассировки и переключает строгий режим. По умолчанию функции отладки PowerShell отключены.

Если параметр трассировки имеет значение , каждая строка скрипта трассируется по мере выполнения. Если параметр имеет значение 2, задания переменных, вызовы функций и вызовы скриптов также трассируются. Если параметр шага указан, вы получите приглашение перед выполнением каждой строки скрипта.

Примеры

Пример 1. Настройка уровня трассировки

В этом примере уровень трассировки устанавливается на 2, а затем запускается скрипт, отображающий числа 1, 2 и 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 = ''.

Пример 2. Включите пошаговый режим

Этот пример включает пошаговое выполнение, а затем запускает скрипт, отображающий числа 1, 2 и 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

Пример 3. Использование строгого режима

В этом примере PowerShell переводится в строгий режим и пытается получить доступ к переменной, которой не назначено значение.

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

Пример 4. Отключение функций отладки

В этом примере отключают все функции отладки, а затем запускается скрипт, отображающий числа 1, 2 и 3.

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

Параметры

-Off

Отключает все функции отладки скрипта.

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

off
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Step

Включает режим пошагового выполнения скрипта. Перед выполнением каждой строки PowerShell предложит остановить, продолжить или ввести новый уровень интерпретатора для проверки состояния скрипта.

Указание параметра шага автоматически задает уровень трассировки .

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

on
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Strict

Указывает, что переменным необходимо присвоить значение, прежде чем ссылаться на них в скрипте. Если переменная ссылается перед назначением значения, PowerShell возвращает ошибку исключения. Это эквивалентно Set-StrictMode -Version 1. Дополнительные сведения см. в разделе Set-StrictMode.

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

on
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Trace

Задает уровень трассировки для каждой строки в скрипте. Каждая линия отслеживается в процессе выполнения.

Допустимые значения для этого параметра приведены следующим образом:

  • 0. Отключите трассировку скрипта.
  • 1. Трассировка строк скрипта во время их выполнения.
  • 2. Трассировка строк скриптов, назначений переменных, вызовов функций и скриптов.

Свойства параметров

Тип:Int32
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

on
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

None

Невозможно передать объекты в этот командлет.

Выходные данные

None

Этот командлет не возвращает выходные данные.