Windows Powershell: avalie uma série de comandos no shell ativo

Windows Powershell: avalie uma série de comandos no shell ativo

Suponha que eu tenha uma série de comandos:

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

Em seguida, quero parar de escrever isso no shell ativo (porque isso modifica meu ambiente de shell), então no bash eu apenas escreveria:

cat foo.ps1 | xargs -I arg eval arg

Ou algo nesse sentido.

Como consigo o mesmo efeito com o Windows Powershell?

Responder1

Para executar um arquivo de script no escopo atual em vez de em um novo escopo, usefornecimento de pontos:

. .\foo.ps1

Como alternativa, você pode usar o equivalente Invoke-Expressiondo PowerShell eval, que deve ser exatamente o mesmo que digitar os comandos no prompt:

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

Ou mais concisamente:

gc .\foo.ps1 -raw | iex

informação relacionada