如何在使用 -File 选项时隐藏 PowerShell 窗口
我这样调用Powershell:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -noninteractive -nologo -file "C:\Users\dummy\Documents\dev\powershell\samples\test.ps1"
我是在一个Python脚本中调用它的,但如果通过快捷方式调用,也会遇到同样的问题。我原以为-NonInteractive
这个参数可以让Powershell在一个隐藏的窗口中运行,但实际上并没有。有没有办法在从外部应用程序调用Powershell时不显示控制台窗口呢?
根据Johannes Rössel的建议的解决方案
import subprocess
st_inf = subprocess.STARTUPINFO()
st_inf.dwFlags = st_inf.dwFlags | subprocess.STARTF_USESHOWWINDOW
subprocess.Popen(["notepad"], startupinfo=st_inf)
3 个回答
0
使用 -WindowStyle Hidden
。详细信息可以查看 这里。
1
我试过用 -WindowStyle Hidden
,但总是会弹出一个控制台窗口,效果不太好。
所以我使用了一个叫 PsRun.exe 的辅助程序,它正好能解决这个问题。你可以在这个链接下载源代码和exe文件:在PowerShell中用WinForm GUI运行计划任务。我用它来处理计划任务。
(注意,-windowstyle 参数只在 V2 版本中可用。)
2
你可以给 CreateProcess 或者 Process.Start 传递合适的参数,这样就可以不显示控制台窗口。
另外,PowerShell 也有一个 -WindowStyle
参数,你可以把它设置为隐藏,这样窗口就不会出现了。