2014-06-26 62 views
1

我正在嘗試在PowerShell中製作BlackJack遊戲,並以此作爲學習該語言的唯一目的。PowerShell - 表單按鈕單擊右括號外的變量變量

不是我已經開始與形式的測試(選擇打/架),發現一個形式測試文件的以下問題:

[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null 

$Form = New-Object system.Windows.Forms.Form 
$Form.Text = "Debug." 
$Form.AutoScroll = $True 
$Form.AutoSize = $True 
$Form.AutoSizeMode = "GrowAndShrink" 
$Form.BackColor = "Red" 
# $Form.Icon = [system.drawing.icon]::ExtractAssociatedIcon("C:\Scripts\Private\SVTserv.ico") ### Commented out because other people don't have this file. 
$Form.MinimizeBox = $False 
$Form.MaximizeBox = $False 
$Form.WindowState = "Normal" 
$Form.SizeGripStyle = "Hide" 
$Form.ShowInTaskbar = $False 
$Form.Opacity = 0.7 
$Form.StartPosition = "CenterScreen" 
$Label = New-Object System.Windows.Forms.Label 
$Label.Text = "Debug, trigger: @Null." 
$Label.AutoSize = $True 
$Form.Controls.Add($Label) 


$HButton = New-Object System.Windows.Forms.Button 
$HButton.Location = New-Object System.Drawing.Size(75,120) 
$HButton.Size = New-Object System.Drawing.Size(75,23) 
$HButton.Text = "Debug1" 
$HButton.Add_Click({ 
$X = "DATA.DEBUG.1" 
Write-Host $X - test1. 
$Form.Close() 
Write-Host $X - test2. 
} 
) 
Write-Host $X - test3. 
$Form.Controls.Add($HButton) 

$SButton = New-Object System.Windows.Forms.Button 
$SButton.Location = New-Object System.Drawing.Size(150,120) 
$SButton.Size = New-Object System.Drawing.Size(75,23) 
$SButton.Text = "Debug2" 
$SButton.Add_Click({ 
$X = "DATA.DEBUG.2" 
Write-Host $X - test1. 
$Form.Close() 
Write-Host $X - test2. 
} 
) 
$Form.Controls.Add($SButton) 

$Form.ShowDialog() | Out-Null 
Write-Host $X - test4.  

擊中DEBUG1按鈕返回以下輸出:

- test3. 
DATA.DEBUG.1 - test1. 
DATA.DEBUG.1 - test2. 
- test4. 

我在這裏想要做的是設置變量$ X並稍後重新使用它,我需要在它將輸出寫入test4的部分使用它。

其他有用的信息,可能是我的PowerShell版本:

PS C:\Windows\System32\WindowsPowerShell\v1.0> Write-Host $PSVersionTable.PSVersion 

Major Minor Build Revision 
----- ----- ----- -------- 
4  0  -1  -1  
+0

我不確定這個問題是什麼,你能詳細說明一下嗎?你想要發生什麼? – Raf

+0

@Raf變量$ X未寫入「Write-Host $ X - test4」。線被觸發。用於檢查我提供的輸出。 – SVT

回答

1

您可以$X一個全局變量 - 與$global:X取代的$X所有實例。

+0

這工作,謝謝。很高興知道PowerShell使用全局變量。但是,這些$ Global:變量是否會被儲存起來用於其他種類? – SVT

+0

你可以在這裏找到更多關於範圍的信息:http://technet.microsoft.com/en-gb/library/hh847849.aspx – Raf