2010-10-20 5 views
1

J'essaie de créer une applet de commande qui appelle la fonction Powershell. Cela peut-il être fait?Fonction d'appel de Powershell Cmdlet

L'idée consiste à avoir une applet de commande statique qui énumère un ensemble de données, puis appelle la fonction définie pour faire quelque chose pour chaque élément. Je peux toujours copier - coller un modèle de base pour la partie d'énumération, mais il est très facile de faire des erreurs en modifiant les paramètres.

Répondre

2

Bien sûr, utilisez la propriété InvokeCommand sur PSCmdlet (en supposant que vous dérivez de cette classe de base), par exemple :

Collection<PSObject> result = this.InvokeCommand.InvokeScript("somefunc", true, 
           PipelineResultTypes.None, null, new[] {1,2,3}); 

On notera que dans ce cas somefunc prend trois paramètres (1,2,3) et aucune entrée de pipeline (null passer pour le quatrième paramètre).

+0

Il m'a fallu un moment, mais ensuite je l'ai trouvé. Je me demandais pourquoi je n'avais pas de valeurs. Le nom de la fonction doit être $ args [0] $ args [1] $ args [2], s'il y a trois paramètres. – user287718

Questions connexes