Как передать динамические параметры в Powershell?

Я хочу вызвать существующий командлет с динамическим количеством параметров.

Поэтому вместо того, чтобы делать это (, взяв в качестве примера host -), я хотел бы сделать это умнее.

# these are the dynamic parameters which maybe get passed into my function or script
# they would be $null be default of course
$forecolor = 'Green'
$newline = $true

# now build the "dynamic" write-host...
if ($forecolor) {
    if ($newline) {
        write-host -fore $forecolor "Hello world"
    }
    else {
        write-host -fore $forecolor "Hello world" -nonewline
    }
}
else {
    if ($newline) {
        write-host "Hello world"
    }
    else {
        write-host "Hello world" -nonewline
    }
}

Это конечно очень некрасиво. Помогите мне сделать его красивее!

Я уже пробовал просто установить $forecolor = '-fore Green', который выводит только «-fore Green Hello world» . Я мог бы передать список аргументов функции и для каждого аргумента в списке добавить соответствующий параметр -. Я просто не знаю, как хранить параметры.

10
задан Dennis G 22 June 2012 в 08:12
поделиться