2010-03-07 3 views
2

내가 지금처럼 PowerShell을 전화 드렸습니다을 사용하는 경우 PowerShell 창을이 표시되지 않도록하는 방법 :은 - 파일 옵션

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

내가 파이썬 스크립트에서 호출 합니다만, 같은 문제가 관찰 할 수있는을 통해 호출하는 경우 지름길. -NonInteractive 플래그를 사용하면 Poweshell이 ​​숨겨진 창에서 실행될 수 있다고 생각했지만 실제로는 그렇지 않습니다. Powershell을 외부 응용 프로그램에서 호출 할 때 콘솔 창을 숨기는 방법이 있습니까? 요하네스 Rössel 제안에 따라

솔루션

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

을 참고 : 나는 -NonInteractive'은 말한다 '생각한다. * 프롬프트를 방출하지 않는 * – Cheeso

답변

2

당신은 콘솔 창을 억제 CreateProcess 또는 Process.Start에 적절한 인수를 전달할 수 있습니다.

그러나 PowerShell에는 -WindowStyle 매개 변수가 있으며이 매개 변수는 숨김으로 설정할 수 있습니다.

+0

첫 번째 방법은 마법처럼 일했다. 단케 비엘! – guillermooo

0

-WindowStyle Hidden을 사용하십시오. here을 참조하십시오.

+0

그건 내가 시도한 첫 번째 것 중 하나지만 작동하지 않습니다. – guillermooo

+0

버전 2를 사용하고 있습니까? – CesarGon

+0

예, 저는 Win7에 있습니다. – guillermooo

1

때로는 콘솔 창이 나타나기 때문에 나는 -WindowStyle Hidden으로 운이 없었습니다.

그래서 나는 PsRun.exe라고하는 도우미 exe를 정확히 사용합니다. 소스 및 exe 파일 Run scheduled tasks with WinForm GUI in PowerShell을 다운로드 할 수 있습니다. 나는 그것을 예정된 작업에 사용한다.

은 (-windowstyle 매개 변수는 V2 사용할 수 있습니다.)