Saya memiliki skrip yang saya berikan nama server di $ args.
Dengan cara ini saya dapat melakukan hal-hal ke server ini (ini) menggunakan foreach
:
.\script.ps1 host1 host2 host3
foreach ($i in $args)
{
Do-Stuff $i
}
Saya ingin menambahkan parameter opsional bernama vlan. Saya sudah mencoba:
Param(
[string]$vlan
)
foreach ($i in $args)
{
Write-Host $i
}
Write-Host $vlan
Ini berfungsi jika Anda mengirimkan -vlan
parameter tetapi jika tidak, maka skrip secara otomatis menetapkan nama server terakhir ke $vlan
.
Jadi, bagaimana Anda bisa melewatkan satu atau beberapa parameter ditambah parameter bernama opsional ke skrip PowerShell?
Idealnya, berikut adalah contoh yang valid:
.\script.ps1 host1
.\script.ps1 host1 host2 host3
.\script.ps1 host1 host2 -vlan office
sumber
Parameter mengambil masukan sebelum argumen. Yang harus Anda lakukan adalah menambahkan parameter yang menerima array, dan menjadikannya parameter posisi pertama. ex:
Kemudian sebut saja seperti:
Perhatikan koma di antara nilai. Ini mengumpulkannya dalam sebuah array
sumber
Salah satu cara untuk melakukannya adalah seperti ini:
Ini akan memungkinkan beberapa host dimasukkan dengan spasi.
sumber
Saya memanggil skrip terjadwal yang harus terhubung ke daftar Server dengan cara ini:
Kemudian di dalam skrip:
Operator terpisah mengembalikan larik string
sumber