因此,我在腳本上做了一些「House Keeping」,我發現一個區域可以縮小/整理。 把這個GUI我已經創建:Powershell:將參數傳遞到函數
兩個菜單欄add_click
事件重新啓動HostnameA和HostnameB調用單獨的功能,即使在這兩個功能的代碼是pratically一樣的,唯一不同的是這主機名變量(見下文)。
按鈕事件的代碼。
$Restart_current_machine.Add_Click(
{
restart_current_machines
})
$Restart_target_machine.Add_Click(
{
restart_target_machines
})
# Function Blocks
function restart_target_machines
{
restart-computer -computer $combobox1.text -force
}
function restart_current_machines
{
restart-computer -computer $combobox2.text -force
}
我的問題是這樣的: 是有辦法,我可以使用Param()
(或類似的東西),以擺脫function restart_current_machines
從而只有一個功能,要麼重新啓動機器?
有點像?
$Restart_current_machine.Add_Click(
{
param($input = combobox1.text)
$input | restart_current_machines
})
$Restart_target_machine.Add_Click(
{
param($input = combobox2.text)
$input | restart_current_machines
})
# Only needing one function
function restart_target_machines
{
restart-computer -computer $input -force
}
我知道這很可能是錯誤的,但只是爲了讓你更好地瞭解我正在嘗試做什麼。
謝謝吉文,你是一個明星,你來我的幫助再次。 你介意解釋([字符串[]] $計算機名) - 我得到的變量被稱爲'$ computename',但'[字符串[]]'是什麼意思/做什麼? – obious 2012-08-03 15:09:04
當參數類型設置爲'[string]'時,參數只接受一個字符串。如果將它設置爲'[string []]',它可以接受一個或多個(數組)字符串。當您將多個值傳遞給此類參數時,用逗號分隔每個字符串。 – 2012-08-03 15:55:19