usar - powershell windows 10




Llamar a una función específica de PowerShell desde la línea de comando (2)

La instrucción arroja el siguiente mensaje de error. El punto es necesario antes del nombre del nombre del archivo para cargarlo en la memoria, como sugirió Keith Hill.

MyFunction: The term 'MyFunction' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Tengo un script de PowerShell que contiene varias funciones. ¿Cómo invoco una función específica desde la línea de comando?

Esto no funciona:

powershell -File script.ps1 -Command My-Func

Por lo general, "dotará" el guión al ámbito (global, otro guión, dentro de un scriptblock). Puntear un script cargará y ejecutará el script dentro de ese alcance sin crear un nuevo alcance anidado. Con las funciones, esto tiene la ventaja de que se quedan después de que se haya ejecutado el script. Podrías hacer lo que sugiere Tomer, excepto que deberías marcar el guión, por ejemplo:

powershell -command "& { . <path>\script1.ps1; My-Func }"

Si solo desea ejecutar la función desde su sesión actual de PowerShell, haga lo siguiente:

. .\script.ps1
My-Func

Solo tenga en cuenta que cualquier script que no esté en una función se ejecutará y las variables de script se convertirán en variables globales.





powershell