1 votes

Exécuter le script PowerShell dans un autre contexte

Mon script powershell contient une commande 'set-location' (cd). Après avoir exécuté le script, mon répertoire actuel est modifié, mais je ne le veux pas de cette façon.

test.ps1 :

cd d:\temp (new line)
myProgram (new line)
(eof)

Ces "new line", "eof" ne sont que des marquages.

Console PowerShell :

PS D:\projects\abc> .\test.ps1
This line is the output of myProgram
PS D:\temp> _

J'ai besoin que ma console PowerShell reste dans d : \projects\abc au lieu d'être à d : \temp après avoir exécuté le script. Une solution rapide ?

Je ne peux pas juste courir d : \temp\myProgram parce que monProgramme ne fonctionne que dans ce d : \temp répertoire. Et aussi, je ne peux pas mettre "cd d : \projects\abc "après l'exécution de myProgram dans test.ps1 car myProgram est un serveur web que je dois arrêter quand je le veux en utilisant Ctrl+C.

2voto

qspitzer Points 141

Solution apportée par PetSerAl dans le commentaire en question :

pushd d:\temp
myProgram
popd

J'ai aussi trouvé une autre solution

PS D:\projects\abc> powershell .\test.ps1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X