Можно ли проверить наличие переменной сценария в PowerShell?
Я использовал Расширения сообщества PowerShell (PSCX) , но заметил, что если вы импортируете модуль, когда установлен Set-PSDebug -Strict
, выдается ошибка:
The variable '$SCRIPT:helpCache' cannot be retrieved because it has not been set.
At C:\Users\...\Modules\Pscx\Modules\GetHelp\Pscx.GetHelp.psm1:5 char:24
Исследуя, как я могу это исправить, я нашел этот фрагмент кода в Pscx.GetHelp.psm1:
#requires -version 2.0
param([string[]]$PreCacheList)
if ((!$SCRIPT:helpCache) -or $RefreshCache) {
$SCRIPT:helpCache = @{}
}
Это довольно простой код; если кеш не существует или нуждается в обновлении, создайте новый пустой кеш. Проблема в том, что вызов $SCRIPT:helpCache
, пока Set-PSDebug -Strict
в силе, приводит к ошибке, поскольку переменная еще не определена.
В идеале мы могли бы использовать Test-Variable
командлет, но такого не существует! Я думал о поиске в variable:
провайдере, но не знаю, как определить область действия переменной.
Итак, мой вопрос: как я могу проверить существование переменной, пока Set-PSDebug -Strict
в силе, не вызывая ошибку?