2011-04-05 129 views
6

¿Cuál es la mejor y más correcta forma de ejecutar un script de PowerShell desde otro?Ejecutar un script de PowerShell desde otro

Tengo un script a.ps1 desde el que quiero llamar a b.ps1 que hace una tarea diferente.

Dejarme saber sus sugerencias. ¿El abastecimiento de puntos es la mejor opción aquí?

Respuesta

5

Dot sourcing ejecutará la segunda secuencia de comandos como si fuera parte de la persona que llama —, todos los cambios en el alcance de la secuencia de comandos afectarán a la persona que llama. Si esto es lo que quiere entonces dot-source,

Sin embargo, es más común llamar a la otra secuencia de comandos como si fuera una función (una secuencia de comandos puede usar param y atributos de nivel de función como una función). En muchos sentidos, un script es una función de PowerShell, con el nombre del archivo que reemplaza el nombre de la función.

+0

Tenga en cuenta que deberá usar la ruta completa o relativa a la secuencia de comandos, a menos que esté en la ruta del sistema. – JasonMArcher

0

Dot sourcing hace que sea más fácil en una etapa posterior convertir sus secuencias de comandos en un módulo, no tendrá que cambiar las secuencias de comandos en funciones.

Otra ventaja del abastecimiento de puntos es que puede agregar la función a su caparazón al agregar el archivo que contiene las funciones a Microsoft.PowerShell_profile.ps1, lo que significa que las tiene disponibles en todo momento (eliminando la necesidad de preocuparse por las rutas etc.)

Tengo un corto de escritura-host en la parte superior de mis archivos dot dotados con el nombre de la función y los parámetros comunes y dot fuente de las funciones en mi perfil. Cada vez que abro PowerShell, la lista de funciones de mi perfil se desplaza (si, como yo, olvida con frecuencia los nombres exactos de sus funciones/archivos). Lo apreciará a medida que pase el tiempo a medida que la cantidad de funciones comienza a acumularse.

Cuestiones relacionadas