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
Опубликовано в Learn, PowerShell, Scripting, Tips. Комментарии к записи Option Explicit отключены
%d такие блоггеры, как: