2013-02-06 3 views
2

Powershell을 배우고 예제 인 here과 같은 GUI 인터페이스를 만들려고합니다.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

관련 문제