Equivalente ao comando `source 'do bash no Powershell?

15

Para executar um script bash linha por linha (para preservar variáveis ​​de ambiente, por exemplo), faça o seguinte:

$ . myscript.sh

Ou:

$ source myscript.sh

Eu tenho um script do PowerShell que - entre outras coisas - define o valor do prompt via função chamada prompt. Simplesmente executar este script (". \ Myscript.ps1") não altera o prompt. No entanto, a função linha a linha é executada como um comando .

Então, o que eu efetivamente preciso é algo como o sourcecomando do PowerShell. É possível?

EDIT : Esta postagem deve ser movida para Stackoverflow?

Esclarecimento 1 : Como eu executo essa função apenas com base na necessidade (ou seja, não para todas as sessões do PowerShell e / ou sempre), não quero armazenar no meu perfil de inicialização do PowerShell.

Sridhar Ratnakumar
fonte
Nota: seus dois comandos Bash são diferentes. Você provavelmente não quis ter o ponto no segundo ou quis que os dois tivessem "./" (diretório atual) no início do nome do script.
Pausado até novo aviso.
Fixa-lo (através da remoção do ponto)
Sridhar Ratnakumar

Respostas:

29

Você também pode " fonte de pontos " no PowerShell. Você só precisa ter certeza de especificar o caminho completo. Portanto, se o script que você deseja carregar estiver no diretório local, você faria:

PS C:\>. .\myscript.ps1
zdan
fonte
Esta é a resposta certa :) fornecimento ponto no PowerShell funciona muito bem assim como em Bash
Jaykul
Eu não tinha ideia de que você poderia fazer isso. legais.
DaveParillo
Uau! Como é que eu não tentei isso antes? :)
Sridhar Ratnakumar
1
Existe alguma maneira de fazer isso com um script cmd existente? A execução de um script cmd resultou na modificação do ambiente do PowerShell?
Peabody # /
1
E se você precisar executar um .batarquivo e modificar o ambiente?
Chloe