我有一个脚本,我传递$ 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
最简单的方法可能是使用两个参数:一个用于主机(可以是一个数组),一个用于vlan。
param([String[]] $Hosts, [String] $VLAN)
代替
foreach ($i in $args)
您可以使用
foreach ($hostName in $Hosts)
如果只有一个主机,foreach循环将仅迭代一次。要将多个主机传递给脚本,请将其作为数组传递:
myScript.ps1 -Hosts host1,host2,host3 -VLAN 2
…或类似的东西
法案
http://stackoverflow.com/questions/15120597/passing-multiple-values-to-a-single-powershell-script-parameter
本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:将多个值传递给单个PowerShell脚本参数