Позволяет включать и отключать функции отладки скриптов, устанавливать уровень трассировки и переключать строгий режим.
Синтаксис
Set-PSDebug [-Off] [<CommonParameters>] Set-PSDebug [-Step] [-Strict] [-Trace <int>] [<CommonParameters>]
Описание
Командлет Set-PSDebug позволяет включать и отключать функции отладки скриптов, устанавливать уровень трассировки и переключать строгий режим.
Если параметру Trace присвоено значение 1, будет осуществляться трассировка каждой сроки скрипта по мере ее выполнения. Если этому параметру присвоено значение 2, будут трассироваться также назначения переменных, вызовы функций и вызовы скриптов. Если задан параметр Step, перед выполнением каждой сроки скрипта будет появляться запрос.
Параметры
-Off
Отключает все функции отладки скриптов.
Примечание. Команда "Set-StrictMode -off" отключает проверку, заданную командой "set-psdebug -strict". Дополнительные сведения см. в описании командлета Set-StrictMode.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Step
Включает режим пошагового выполнения скриптов. Перед выполнением каждой строки пользователь получает запрос, следует ли остановить выполнение скрипта, продолжить выполнение или задать новый уровень интерпретатора команд для проверки состояния скрипта.
Примечание. При задании параметра Step параметру Trace автоматически присваивается значение 1.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Strict
Указывает, что интерпретатор должен создавать исключение, если происходит обращение к переменной до момента присвоения ей значения.
Примечание. Команда "Set-StrictMode -off" отключает проверку, заданную командой "set-psdebug -strict". Дополнительные сведения см. в описании командлета Set-StrictMode.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Trace <int>
Задает уровень трассировки:
0 — отключить трассировку скрипта
1 — трассировать строки скрипта по мере выполнения
2 — трассировать строки скрипта, присвоения значений переменным, обращения к функциям и скрипты.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
Нет Передать входные данные этому командлету по конвейеру невозможно. |
Выходные данные |
Нет Этот командлет не возвращает никаких выходных данных. |
Пример 1
C:\PS>set-psdebug -trace 2; foreach ($i in 1..3) {$i} DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i} 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} 2 DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i} 3 Описание ----------- Эта команда задает уровень трассировки 2 и запускает скрипт, который отображает числа 1, 2 и 3.
Пример 2
C:\PS>set-psdebug -step; foreach ($i in 1..3) {$i} DEBUG: 1+ 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 Описание ----------- Эта команда включает пошаговый режим, а затем запускает скрипт, который отображает числа 1, 2 и 3.
Пример 3
C:\PS>set-psdebug -off; foreach ($i in 1..3) {$i} 1 2 3 Описание ----------- Эта команда выключает все функции отладки, а затем запускает скрипт, который отображает числа 1, 2 и 3.
Пример 4
C:\PS>set-psdebug -strict; $NewVar The variable $NewVar cannot be retrieved because it has not been set yet. At line:1 char:28 + Set-PsDebug -strict;$NewVar <<<< Описание ----------- Эта команда переводит интерпретатор в строгий режим и пытается получить доступ к переменной, значение которой еще не задано.