2 votes

Comment supprimer la fenêtre Powershell lors de l'utilisation de l'option -File

Je l'appelle Powershell comme ceci:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -noninteractive -nologo -file "C:\Users\dummy\Documents\dev\powershell\samples\test.ps1"

Je l'appelle depuis un script python, mais le même problème peut être observé s'il est appelé via un raccourci. Je pensais que le drapeau -NonInteractive ferait en sorte que Poweshell s'exécute dans une fenêtre masquée, mais ce n'est pas le cas. Existe-t-il un moyen de supprimer la fenêtre de la console lors de l'appel de Powershell à partir d'une application externe?

Solution basée sur la suggestion de Johannes Rössel

import subprocess
st_inf = subprocess.STARTUPINFO()
st_inf.dwFlags = st_inf.dwFlags | subprocess.STARTF_USESHOWWINDOW
subprocess.Popen(["notepad"], startupinfo=st_inf)

2voto

Joey Points 148544

Vous pouvez passer des arguments appropriés à CreateProcess ou Process.Start pour supprimer la fenêtre de la console.

Cependant, PowerShell a également un paramètre -WindowStyle que vous pouvez définir sur caché.

1voto

stej Points 14257

Je n'ai eu aucun succès avec -WindowStyle Hidden, car une fenêtre de console apparaissait à chaque fois pendant un certain temps.

C'est pourquoi j'utilise un exécutable d'assistance appelé PsRun.exe qui fait exactement cela. Vous pouvez télécharger le code source et le fichier exe Exécuter des tâches planifiées avec une interface graphique WinForm en PowerShell. Je l'utilise pour des tâches planifiées.

(Notez que le paramètre -windowstyle n'est disponible que pour V2.)

0voto

CesarGon Points 8710

Utilisez -WindowStyle Hidden. Voir ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X