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

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:| :) :wink: :D :lol: :( :cry: 8) :o :oops: :? :x :P :evil: :twisted: :roll: :!: :?: :idea: :arrow: :mrgreen:
Ещё смайлики…

Markdown is OFF

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Как очистить переменные текущего сеанса

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

UncleFather » 09 мар 2014 09:42, Вс

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

Вернуться к началу