我使用PowerShell构建了一个小工具,然后通过批处理文件打开它。 批处理文件包含以下内容:
powershell -file "D:\scripts\Powershell\xxx.ps1"
现在它打开我的工具,但始终在后台显示命令提示符。我希望在运行文件后隐藏CMD。
如何实现?我试过-hidden
但是我的整个程序被隐藏了:D
由于
答案 0 :(得分:6)
尝试在批处理文件中使用START
实用程序,它将在新窗口中启动该程序,并允许批处理的cmd
窗口在后台退出。
START powershell -file "D:\scripts\Powershell\xxx.ps1"
请注意,START
时,START powershell -WindowStyle Hidden "D:\scripts\Powershell\xxx.ps1"
会出现[潜在]意外行为。
如果您正在使用GUI元素或外部应用程序,并且想要隐藏Powershell的窗口而不是GUI,请尝试以下操作:
START "" powershell -NoLogo -WindowStyle Hidden "C:\gui.ps1"
以下是我与PowerShell GUI一起使用批处理的示例:
C:\ call.cmd的内容:
# VB Assembly GUI example
Add-Type -AssemblyName Microsoft.VisualBasic
[Microsoft.VisualBasic.Interaction]::MsgBox(
"Do you like VB in PowerShell?",
[Microsoft.VisualBasic.MsgBoxStyle]::YesNo,
"Hello"
)
# Windows Forms GUI example
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show(
"Do you like Windows Forms?",
"Hello",
[System.Windows.Forms.MessageBoxButtons]::YesNo
)
# External app GUI example
& notepad.exe
C:\ gui.ps1:
的内容call.cmd
运行START
批处理将使用cmd
启动PowerShell [退出{{1}}],PowerShell将隐藏其窗口,但显示从PS1文件执行的GUI元素。