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

Windows PowerShell — расширяемое средство автоматизации от Microsoft, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев.
Отличная замена командной строке. Возможности просто безграничные.


Модератор: UncleFather

Аватара пользователя
UncleFather
Site Admin
Сообщения: 1505
Зарегистрирован: 17 авг 2004 16:20, Вт
Контактная информация:

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

Сообщение 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

Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram

Изображение
Изображение
Изображение
Изображение