Question

J'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'appeler à partir d'un script python, mais peut être observé le même problème si elle est appelée via un raccourci. Je pensais que le drapeau -NonInteractive causerait Poweshell d'exécuter dans une fenêtre cachée, mais il ne fonctionne pas. Est-il possible de la fenêtre supprimant la console lors de l'appel Powershell à partir d'une application externe?

Solution basée sur la suggestion Johannes Rössel

import subprocess
st_inf = subprocess.STARTUPINFO()
st_inf.dwFlags = st_inf.dwFlags | subprocess.STARTF_USESHOWWINDOW
subprocess.Popen(["notepad"], startupinfo=st_inf)
Était-ce utile?

La solution

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

Cependant, PowerShell a également un paramètre de -WindowStyle que vous pouvez définir le masquer.

Autres conseils

J'ai eu pas de chance avec -WindowStyle Hidden, parce qu'une fenêtre de console est apparue à chaque fois pendant un certain temps.

Voilà pourquoi j'utilise un exe d'aide appelé PsRun.exe qui fait exactement cela. Vous pouvez télécharger le fichier source et exe Exécuter les tâches planifiées avec l'interface graphique WinForm dans PowerShell . Je l'utilise pour les tâches planifiées.

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

Utilisez -WindowStyle Hidden. Voir .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top