2010-09-14 8 views
7

J'ai écrit un script PowerShell qui est une fonction complète prenant des paramètres (par exemple, le nom de la fonction (param) {}) et en dessous, il s'agit d'un appel à la fonction. paramètre.Appel de la fonction PowerShell avec le paramètre du fichier .cmd ou .bat

Je veux être capable d'appeler cette fonction dans son fichier .ps1 en passant le paramètre. Comment serais-je capable d'emballer un appel à la fonction via un fichier .bat ou .cmd? J'utilise Powershell v2.0.

Merci

Répondre

1

je crois que tout ce que vous avez à faire est de nommer les paramètres de l'appel au script comme ce qui suit:

powershell.exe Path\ScripName -Param1 Value1 -Param2 Value2 

Param1 et Param2 sont les noms des paramètres réels de la signature de la fonction.

Profitez-en!

+0

Comment puis-je appeler la fonction actuelle? Cela appellera-t-il ma fonction? Que faire si j'ai> 1 fonction dans le même fichier .ps1 avec la signature en termes de paramètres? – dotnetdev

6

Vous devez utiliser ce que l'on appelle le «dot-sourcing» du script et la commande avec plus d'une instruction: dot-sourcing du script + appel de la fonction avec des paramètres.

Le test-Function.ps1 script de test:

function Test-Me($param1, $param2) 
{ 
"1:$param1, 2:$param2" 
} 

L'appelant fichier .bat:

powershell ". .\Test-Function.ps1; Test-Me -Param1 'Hello world' -Param2 12345" 

powershell ". .\Test-Function.ps1; Test-Me -Param1 \"Hello world\" -Param2 12345" 

Remarques: ce n'est pas une exigence, mais je vous recommande enfermer tout le texte de commande avec guillemets doubles échappant, si nécessaire, guillemets internes à l'aide de règles d'échappement CMD.

Questions connexes