Set-PSDebug
Включает и выключает функции отладки сценариев, задает уровень трассировки и переключает строгий режим.
Синтаксис
Set-PSDebug
[-Trace <Int32>]
[-Step]
[-Strict]
[<CommonParameters>]
Set-PSDebug
[-Off]
[<CommonParameters>]
Описание
Командлет Set-PSDebug
включает и отключает функции отладки скриптов, задает уровень трассировки и переключает строгий режим. По умолчанию функции отладки PowerShell отключены.
Если параметр Trace имеет значение 1
, каждая строка скрипта трассируется по мере его выполнения. Если параметр имеет значение 2
, также отслеживаются назначения переменных, вызовы функций и вызовы скриптов. Если указан параметр Step , перед каждой строкой скрипта будет отображаться запрос.
Примеры
Пример 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
Отключает все функции отладки сценариев.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Step
Включает пошаговое выполнение сценария. Перед выполнением каждой строки PowerShell предлагает остановить, продолжить или ввести новый уровень интерпретатора, чтобы проверить состояние скрипта.
При указании параметра Step автоматически устанавливается уровень трассировки 1
.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Strict
Указывает, что переменным необходимо присвоить значение перед ссылкой в скрипте. Если ссылка на переменную возникает до присвоения значения, PowerShell возвращает ошибку исключения. Это равносильно Set-StrictMode -Version 1
. Дополнительные сведения см. в разделе Set-StrictMode.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Trace
Задает уровень трассировки для каждой строки в скрипте. Каждая строка отслеживается по мере выполнения.
Ниже приведены допустимые значения для этого параметра.
- 0: отключите трассировку скрипта.
- 1. Трассируйте строки скрипта при их выполнении.
- 2. Трассировка строк скрипта, назначений переменных, вызовов функций и скриптов.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
None
Вы не можете передавать объекты в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.