Frage

Ich rufe Powershell wie folgt:

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

Ich rufe es von einem Python-Skript, aber das gleiche Problem kann beobachtet werden, wenn über eine Verknüpfung bezeichnet. Ich dachte, die -NonInteractive Flagge Poweshell verursachen würde in einem versteckten Fenster auszuführen, aber es funktioniert nicht. Gibt es eine Möglichkeit das Konsolenfenster von Unterdrücken, wenn Powershell von einer externen Anwendung aufrufen?

Lösung auf Basis von Johannes Rössel Vorschlag

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

Lösung

Sie können die entsprechenden Argumente übergeben zu Create oder Process.Start das Konsolenfenster zu unterdrücken.

Allerdings Powershell hat auch einen -WindowStyle Parameter, die Sie versteckt einstellen können.

Andere Tipps

Ich hatte kein Glück mit -WindowStyle Hidden, weil ein Konsolenfenster jedes Mal für eine Weile erschien.

Deshalb habe ich einen Helfer exe verwenden genannt PsRun.exe, die genau das tut. Sie können Quell- und exe-Datei herunterladen Ausführen geplanter Aufgaben mit WinForm GUI in Powershell . Ich benutze es für geplante Aufgaben.

(Beachten Sie, dass -windowstyle Parameter nur für V2 verfügbar ist.)

Mit -WindowStyle Hidden. Siehe hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top