2013-02-06 14 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