J'ai été incapable de créer une fonction Powershell qui accepte plus d'un paramètre scriptblock. Voici le script de test simplifié. Quel est le problème avec plusieurs scriptsblocks?Fonction Powershell avec plusieurs paramètres de scriptblock
function Task1 {
param([scriptblock]$f={})
$f.Invoke()
}
function Task2 {
param([scriptblock]$f={}, [scriptblock]$k={})
$f.Invoke()
$k.Invoke()
}
Task1({write-host "hello" -nonewline })
Task1({write-host " world" })
Task2({write-host "hello" -nonewline }, { write-host " world" })
Ce produit la sortie suivante:
hello world
Task3 : Cannot process argument transformation on parameter 'f'. Cannot convert the "System.Object[]" value of type "S
ystem.Object[]" to type "System.Management.Automation.ScriptBlock".