¿Equivalente al comando `source` de bash en Powershell?

15

Para ejecutar un script bash línea por línea (para preservar las variables de entorno, por ejemplo), se hace lo siguiente:

$ . myscript.sh

O:

$ source myscript.sh

Tengo un script de PowerShell que, entre otras cosas, establece el valor de la solicitud a través de la función llamada prompt. Simplemente ejecutar este script (". \ Myscript.ps1") no cambia la solicitud. Sin embargo, ejecuta la función línea por línea como lo hace un comando .

Entonces, lo que realmente necesito es algo como el sourcecomando para PowerShell. ¿Es posible?

EDITAR : ¿Debería esta publicación moverse a Stackoverflow?

Aclaración 1 : dado que ejecuto esta función solo en función de las necesidades (es decir, no para cada sesión de PowerShell y / o siempre), no quiero almacenar en mi perfil de inicio de PowerShell.

Sridhar Ratnakumar
fuente
Nota: sus dos comandos Bash son diferentes. Probablemente no quiso tener el punto en el segundo o quiso que ambos tuvieran "./" (directorio actual) al comienzo del nombre del script.
Pausado hasta nuevo aviso.
Solucionado (eliminando el punto)
Sridhar Ratnakumar

Respuestas:

29

También puede " fuente de puntos " en PowerShell. Solo necesita asegurarse de especificar la ruta completa. Entonces, si el script que desea cargar está en el directorio local que haría:

PS C:\>. .\myscript.ps1
zdan
fuente
ESTA es la respuesta correcta :) el abastecimiento de puntos en PowerShell funciona prácticamente igual que en Bash
Jaykul
No tenía idea de que pudieras hacer eso. bonito.
DaveParillo
Whoa! ¿Cómo es que no lo intenté antes? :)
Sridhar Ratnakumar
1
¿Hay alguna forma de que esto se pueda hacer con un script cmd existente? ¿La ejecución de un script cmd da como resultado que se modifique el entorno powershell?
peabody
1
¿Qué sucede si necesita ejecutar un .batarchivo y modificar el entorno?
Chloe