Как очистить переменные текущего сеанса
Значение переменной в текущем сеансе PowerShell можно очистить с помощью командлета Clear-Variable. Этот командлет удаляет только данные, хранящиеся в переменной, оставляя саму переменную. В результате переменная получает пустое значение (NULL). Если для переменной был явно указан тип данных, он также будет сохранен.
Clear-Variable не обнуляет значения констант и системных переменных, даже при указании параметра -Force. Также, если указанная при выполнении переменная не существует, то командлет не сработает - Clear-Variable не создает пустые переменные (со значением null).
Пример использования:
Код: Выделить всё
Clear-Variable -Name MyVar -Force -ErrorAction SilentlyContinue
Здесь нужно обратить внимание на то, что имя переменной указывается без префикса $
Если же необходимо не обнулить, а полностью удалить переменную, то нужно пользоваться командлетом Remove-Variable.
Следующая команда УДАЛЯЕТ все переменные в текущем сеансе PowerShell:
Код: Выделить всё
Remove-Variable -Name * -Force -ErrorAction SilentlyContinue
Обратите внимание, что аналогичный синтаксис команды при очистке переменных:
Код: Выделить всё
Clear-Variable -Name * -Force -ErrorAction SilentlyContinue
выдаст ошибку:
Clear-Variable : Не удалось выполнить проверку переменной, так как значение 0 является недопустимым для переменной MaximumErrorCount.
Поскольку командлет Clear-Variable не смог присвоить переменной MaximumErrorCount нулевое значение, то его выполнение было прервано и остальные переменные так же не обнулились.
В этом случае можно, например, исключить переменные начинающиеся на Max из области действия командлета:
Код: Выделить всё
Clear-Variable -Name * -Exclude "Max*" -Force -ErrorAction SilentlyContinue