Windows Powershell: Eine Reihe von Befehlen in der aktiven Shell auswerten

Windows Powershell: Eine Reihe von Befehlen in der aktiven Shell auswerten

Angenommen, ich habe eine Reihe von Befehlen:

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

Als nächstes möchte ich diese nicht mehr in der aktiven Shell schreiben müssen (weil dadurch meine Shell-Umgebung geändert wird). In Bash würde ich daher einfach Folgendes schreiben:

cat foo.ps1 | xargs -I arg eval arg

Oder so etwas in der Art.

Wie erreiche ich denselben Effekt mit Windows Powershell?

Antwort1

Um eine Skriptdatei im aktuellen Bereich statt in einem neuen Bereich auszuführen, verwenden SiePunktbeschaffung:

. .\foo.ps1

Alternativ können Sie verwenden Invoke-Expression, das Äquivalent von PowerShell eval. Dies sollte genau dasselbe sein, als würden Sie die Befehle selbst in der Eingabeaufforderung eingeben:

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

Oder kürzer:

gc .\foo.ps1 -raw | iex

verwandte Informationen