Tengo dos archivos de PowerShell. a.ps1 y b.ps1.
En un punto central en a.ps1, quiero comenzar a ejecutar código en b.ps1 y terminar el script a.ps1.
¿Cómo hacerlo teniendo en cuenta que ambos archivos se encuentran en la misma carpeta?
powershell
window
GibboK
fuente
fuente
Respuestas:
¿Está bien si b.ps1 se ejecuta en un nuevo proceso de Power Shell? Si es así, lo siguiente debe hacer lo que usted describe.
"Invoke-Expression" se ejecuta en el mismo proceso pero espera la terminación de b.ps1.
fuente
En a.ps1,
la forma en que invocas otros programas
fuente
Obtuve esto de un artículo diferente, pero puede aplicarse aquí: gracias ( /programming//users/3905079/briantist )
Primero, si desea realizar múltiples llamadas en una sola sesión a una máquina remota, primero cree una PSSession:
Luego use esa sesión en todas las llamadas posteriores:
} Luego cierre la sesión cuando haya terminado:
Además, si no sabe exactamente qué script será, pero sepa dónde comienza su script, puede hacer esto:
(eso es mio)
fuente
Use la variable mágica $ PSScriptRoot para referirse a su directorio actual. Luego llame a la secuencia de comandos B con el ampersand ("Operador de llamada"):
Si desea mantener las variables de B dentro del alcance de A, puede ejecutar el script utilizando el operador de abastecimiento de puntos:
fuente