Je sais qu'il y a ce petit -noexit
commutateur pour PowerShell.
Est-il possible de rester dans le Shell sans utiliser cet interrupteur?
En d'autres termes, je veux une ou plusieurs commandes de script qui s'exécutent puis laissent le shell ouvert.
Ce script ne se fermera pas si vous l'exécutez sans arguments, par exemple en double-cliquant dessus:
param($Work)
# restart PowerShell with -noexit, the same script, and 1
if (!$Work) {
powershell -noexit -file $MyInvocation.MyCommand.Path 1
return
}
# now the script does something
# this script just outputs this:
'I am not exiting'
Vous avez essentiellement 3 options pour empêcher la fermeture de la fenêtre de la console PowerShell, que je décris plus en détail sur mon article de blog .
PowerShell -NoExit "C:\SomeFolder\SomeScript.ps1"
Read-Host -Prompt "Press Enter to exit"
Voir mon blog pour plus d'informations sur les clés de registre à modifier.
On dirait que vous recherchez l'option # 1 ou # 3.
As-tu essayé
$Host.enternestedprompt()
Cela arrêtera l'exécution et les déposera dans une invite imbriquée. Lorsqu'ils quittent cette invite, le script se termine et la fenêtre se ferme.
"do stuff"
Pause
Oui, tout comme la ligne de commande - sortie:
do stuff
Press Enter to continue...:
La boucle while à la fin de ce script trivial me demande une commande et l'exécute. Il s'exécute avec l'environnement du script, il est donc possible de vérifier les valeurs des variables. La saisie de "exit" met fin à la boucle lorsqu'elle est exécutée.
# Do something.
cd D:\temp
$current_directory = $(pwd)
dir
write-Host # Just add a little space after the dir
# Stay in the Shell and execute commands.
while ($TRUE) {
$cmd = Read-Host "PS $(pwd)"
if ($cmd[0] -eq '"') { iex "& $cmd" }
else { iex $cmd }
}
Je suis sûr que d'autres pourront partager certaines améliorations, mais c'est un début. Cordialement.
Je ne connais pas de commande que vous pourriez exécuter dans le script qui empêcherait le shell de se terminer s'il n'avait pas été invoqué à l'aide de -noexit
commande.
J'utilise généralement Read-Host "Press ENTER to continue"
à la fin si je ne veux pas que le shell se ferme. Cependant, cela n'empêchera pas le shell de se fermer après avoir appuyé sur Entrée s'il n'a pas été démarré avec -noexit
.
Comme ça?
PowerShell -File c:\myscript.ps1 -NoExit