所以我在我的剧本上做了一些“看家”,我发现了一个可以减少/整理的区域。使用我创建的这个 GUI:
两个菜单栏add_click
事件 Restart HostnameA 和 HostnameB 调用单独的函数,即使这两个函数中的代码实际上是相同的,唯一的区别是主机名的这个变量(见下文)。
按钮事件的代码。
$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
}
我知道这很可能是错误的,但只是为了让您更好地了解我正在尝试做什么。