Страница 1 из 1

Как очистить переменные текущего сеанса

Добавлено: 09 мар 2014 09:42, Вс
UncleFather

Значение переменной в текущем сеансе 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.

01.jpg

Поскольку командлет Clear-Variable не смог присвоить переменной MaximumErrorCount нулевое значение, то его выполнение было прервано и остальные переменные так же не обнулились.

В этом случае можно, например, исключить переменные начинающиеся на Max из области действия командлета:

Код: Выделить всё

Clear-Variable -Name * -Exclude "Max*"  -Force -ErrorAction SilentlyContinue