У мене є сценарій, якому я передаю імена серверів у $ 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