【发布时间】:2023-03-26 14:56:01
【问题描述】:
所以我在我的剧本中做了一些“看家”,我发现了一个可以减少/整理的区域。 使用我创建的这个 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
}
我知道这很可能是错误的,但只是为了让您更好地了解我正在尝试做什么。
【问题讨论】:
标签: powershell parameters parameter-passing code-duplication