我有一个脚本,可以在$ args中传递服务器名称。
这样,我可以使用以下命令对此服务器进行处理foreach
:
.\script.ps1 host1 host2 host3
foreach ($i in $args)
{
Do-Stuff $i
}
我想添加一个名为vlan的命名可选参数。我试过了:
Param(
[string]$vlan
)
foreach ($i in $args)
{
Write-Host $i
}
Write-Host $vlan
如果您传递-vlan
参数,它会起作用,但如果您不传递参数,脚本将自动将最后一个服务器名称分配给$vlan
。
因此,如何将单个或多个参数以及可选的命名参数传递给PowerShell脚本?
理想情况下,以下是有效的示例:
.\script.ps1 host1
.\script.ps1 host1 host2 host3
.\script.ps1 host1 host2 -vlan office