Mam skrypt, do którego przekazuję nazwę (y) serwera w $ args.
W ten sposób mogę robić rzeczy na tym (tych) serwerze (ach) używając foreach
:
.\script.ps1 host1 host2 host3
foreach ($i in $args)
{
Do-Stuff $i
}
Chciałbym dodać nazwany opcjonalny parametr o nazwie vlan. Próbowałem:
Param(
[string]$vlan
)
foreach ($i in $args)
{
Write-Host $i
}
Write-Host $vlan
Działa, jeśli przekażesz -vlan
parametr, ale jeśli tego nie zrobisz, skrypt automatycznie przypisze ostatnią nazwę serwera $vlan
.
Jak więc można przekazać jeden lub wiele parametrów oraz opcjonalny nazwany parametr do skryptu programu PowerShell?
Idealnie, oto ważne przykłady:
.\script.ps1 host1
.\script.ps1 host1 host2 host3
.\script.ps1 host1 host2 -vlan office