gpt4 book ai didi

powershell - 将多个值传递给单个 PowerShell 脚本参数

转载 作者:行者123 更新时间:2023-12-03 05:00:29 26 4
gpt4 key购买 nike

我有一个脚本,我将 $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

...或类似的东西。

关于powershell - 将多个值传递给单个 PowerShell 脚本参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15120597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com