Was tun wenn man in einem PS-Script ein cmdlet aufrufen muss, diesem cmdlet aber eine variable Zahl an Parametern übergeben möchte?
Man könnte das machen:
if (varParam1) { cmdlet -param "fix param" -param1 varParam1 } else { cmdlet -param "fix param" }
oder man verwendet „splatting“. Dabei werden die Parameter mit Hashtables oder Arrays übergeben. Hier ein Beispiel mit Hashtable:
ACHTUNG!!! GANZ WICHTIG!!
Beachtet bei der Verwendung der Hashtable-Variable das @-Zeichen!!!
$Colors = @{ForegroundColor = "black"; BackgroundColor = "white"} #Write a message with the colors in $Colors Write-Host "This is a test." @Colors
Und wieder was gelernt 😉
Source:
- https://stackoverflow.com/questions/28430620/only-pass-parameter-if-value-supplied
- https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell.core/about/about_splatting?view=powershell-5.1&viewFallbackFrom=powershell-Microsoft.PowerShell.Core
- https://stackoverflow.com/a/42492693/4823381