Option Explicit
Скриптерам и программерам на Visual Basic наверняка знакома эта “ключевая фраза”. Дело в том что по умолчанию, если использовать не объявленную заранее переменную, то ошибки не произойдет ни в Visual Basic ни в PowerShell. Просто вместо несуществующей переменной будет подставлено пустое значение. Обычно это является нормальным поведением, но иногда может привести и к логическим ошибкам. Ведь достаточно ошибится на одну букву в имени переменной, и логика скрипта может сильно изменится. Для таких случаев и был сделан Option Explit. При объявлении в начале скрипта этой директивы, при обращении к несуществующей переменной выдается ошибка. Аналог разумеется есть и в PowerShell - команда Set-PsDebug с ключем -Strict
Вызов несуществующей переменной в обычном режиме (никакой ошибки):
[PS <50> C:\Root] $несуществующаяПеременная
и при включении Set-PSDebug -Strict:
[PS <51> C:\Root] Set-PSDebug -Strict [PS <52> C:\Root] $несуществующаяПеременная The variable $несуществующаяПеременная cannot be retrieved because it has not been set yet. At line:1 char:26 + $несуществующаяПеременная <<<<
Однако если предварительно назначить переменной значение - всё будет в порядке:
[PS <53> C:\Root] $несуществующаяПеременная = 123 [PS <54> C:\Root] $несуществующаяПеременная 123
Отключить режим можно использовав ключ -Off:
[PS <55> C:\Root] Set-PSDebug -Off
Или задав ключу -Strict значение $False следующим образом:
[PS <56> C:\Root] Set-PSDebug -Strict:$False

