Здравствуйте. Итак, в ISE у вас есть вкладки Powershell и вкладки скриптов.
Вкладка Powershell похожа на работу с одной консолью Powershell.Каждая вкладка «Сценарий» внутри этой вкладки powershell использует эту консоль.Так что, если в одном скрипте вы определите
$Hello = "TEST"
, запустите его в ise.Затем в другой вкладке скрипта на той же вкладке powershell вы запускаете
$ Hello
, вывод будет "TEST"
Это называется Scope.В основном то, что код переменных может видеть.Все переменные, созданные в экземпляре powershell, всегда доступны в остальной части этого экземпляра
Так что давайте немного углубимся и рассмотрим пример
function fA
{
$textbox2.Text = $localVar
}
$button2_Click =
{
$localVar = "123"
$textbox1.Text = $localVar
fA
}
$ localVar создается по щелчку дляпервый раз.Область действия будет продолжаться от всего, что создано после него.Таким образом, вызывается FA, а $ localvar переносится в область действия FA.Текстовые поля 1 и 2 показывают 123. Но давайте покажем, как все еще есть область для этого, и она не глобальна.
function TB1
{
$localVar = "456"
$textbox1.Text = $localVar # Will output 456
}
function TB2{
$textbox2.Text = $localVar # Will output 123
}
$button2_Click =
{
$localVar = "123"
TB1
TB2
fA
}
$ localVar , созданный впервые.Переданная первой функции $ localvar по-прежнему 123 , но в функции она изменилась на 456 .Когда он уходит, он переходит ко второй функции, где его $ Localvar будет равен 123 .Переменная, измененная в функции, не влияла на переменную, которая была в ее родительском, называемом вызывающим button2_click