Windows Powershell: evalúa una serie de comandos en el shell activo

Windows Powershell: evalúa una serie de comandos en el shell activo

Supongamos que tengo una serie de comandos:

# foo.ps1
do-this
do-that 
do-something-totally-different
etc.

A continuación, quiero dejar de tener que escribirlos en el shell activo (porque modifica mi entorno de shell), así que en bash simplemente escribiría:

cat foo.ps1 | xargs -I arg eval arg

O algo por el estilo.

¿Cómo logro el mismo efecto con Windows PowerShell?

Respuesta1

Para ejecutar un archivo de script en el ámbito actual en lugar de en un ámbito nuevo, utiliceabastecimiento de puntos:

. .\foo.ps1

Alternativamente, puede usar Invoke-Expression, el equivalente de PowerShell eval, que debería ser exactamente igual a escribir los comandos usted mismo cuando se le solicite:

Get-Content .\foo.ps1 -Raw | Invoke-Expression

O más concisamente:

gc .\foo.ps1 -raw | iex

información relacionada