Quiero llamar a un comando existente con un número dinámico de parámetros.¿Cómo pasar parámetros dinámicos en Powershell?
Así que en lugar de hacer esto (tomando write-host como ejemplo), me gustaría hacerlo de la manera más inteligente.
# 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
}
}
Por supuesto, esto es muy feo. ¡Ayúdame a hacerlo más bonito!
Ya he probado sólo la creación de $forecolor = '-fore Green'
, que sólo produce la salida "-fore verde Hola mundo". Podría pensar en pasar una lista de argumentos a una función y para cada argumento en la lista agregar el parámetro correspondiente - Simplemente no sé cómo mantener los parámetros.
¿Has echado un vistazo a los conjuntos de parámetros? http://blogs.technet.com/b/heyscriptingguy/archive/2011/06/30/use-parameter-sets-to-simplify-powershell-commands.aspx –
David, ¿cómo ayudaría eso aquí? Estoy confundido. – Joey