Come sopprimere la finestra PowerShell quando si utilizza l'opzione -File
-
25-09-2019 - |
Domanda
Chiamo Powershell in questo modo:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -noninteractive -nologo -file "C:\Users\dummy\Documents\dev\powershell\samples\test.ps1"
sto chiamando da uno script python, ma lo stesso problema si può osservare se chiamati tramite un collegamento. Ho pensato che la bandiera -NonInteractive
causerebbe Poweshell di eseguire in una finestra nascosta, ma non è così. C'è un modo di soppressione della finestra della console quando si chiama PowerShell da un'applicazione esterna?
Soluzione basata su Johannes Rössel suggerimento
import subprocess
st_inf = subprocess.STARTUPINFO()
st_inf.dwFlags = st_inf.dwFlags | subprocess.STARTF_USESHOWWINDOW
subprocess.Popen(["notepad"], startupinfo=st_inf)
Soluzione
È possibile passare gli argomenti appropriati per CreateProcess o Process.Start per sopprimere la finestra della console.
Tuttavia, PowerShell dispone anche di un parametro -WindowStyle
che è possibile impostare per nascosto.
Altri suggerimenti
Non ho avuto fortuna con -WindowStyle Hidden
, perché una finestra della console è apparso ogni volta per un po '.
Ecco perché io uso un exe aiutante chiamato PsRun.exe che fa esattamente questo. È possibile scaricare sorgente e il file exe Esegui attività pianificate con WinForm GUI in PowerShell . Io lo uso per operazioni pianificate.
(Si noti che il parametro -windowstyle è disponibile solo per V2.)
Usa -WindowStyle Hidden
. Vedere qui .