2013-02-06 13 views
2

我正在学习Powershell并试图创建一个GUI界面,如示例here使用GUI的PowerShell不会设置变量

但是,当我按原样运行时,$x从未被定义。任何想法我可能做错了什么?我知道它是与:

$OKButton.Add_Click({$x=$objListBox.SelectedItem;$objForm.Close()})

因为如果我将其更改为:

$OKButton.Add_Click({Write-Host "worked";$objForm.Close()})

它返回worked

回答

8

您的操作块在单独的本地范围内运行。要修改全局(会话范围)变量,请使用范围修改器($global:varname)。例如: -

$OKButton.Add_Click({$global:x=$objListBox.SelectedItem;$objForm.Close()}) 

更多范围在Technet - about_Scopes(或写在PowerShell中Get-Help about_scopes

+0

就是这样。非常感谢。 – atownson