У меня есть сценарий, которому я передаю имя (а) сервера в $ 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