2010-09-14 19 views
7

He escrito un script powershell que es una función completa que toma parámetros (por ejemplo, nombre de función (param) {}) y debajo esta es una llamada a la función, con parámetro.Llamar a la función powershell con el parámetro del archivo .cmd o .bat

Quiero poder llamar a esta función en su archivo .ps1, pasando el parámetro. ¿Cómo podría empaquetar una llamada a la función a través de un archivo .bat o .cmd? Estoy usando Powershell v2.0.

Gracias

Respuesta

1

creo que todo lo que tiene que hacer es nombrar a los parámetros de la llamada al script como el siguiente:

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

Param1 y Param2 son nombres reales de los parámetros en función de la firma.

¡Disfrútalo!

+0

¿Cómo llamo a la función real? ¿Esto llamará mi función? ¿Qué sucede si tengo> 1 función en el mismo archivo .ps1 con la firma en términos de parámetros? – dotnetdev

6

Debería usar el llamado "dot-sourcing" del script y el comando con más de una instrucción: dot-sourcing del script + llamada de la función con parámetros.

El guión test-Function.ps1:

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

El archivo .bat llamando:

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

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

Notas: esto no es un requisito, pero yo recomendaría que encierra todo el texto de comando con comillas dobles que escapan, si es necesario, comillas internas que utilizan las reglas de escape de CMD.

Cuestiones relacionadas