我有一个PowerShell脚本,作为它的最后一条指令,它正在调用一个C#程序。此PowerShell脚本正在调度程序上的Windows服务器上运行。问题是脚本使用的PowerShell控制台窗口在脚本执行完毕后不会关闭或消失。
我们需要关闭控制台窗口,否则调度程序将在任务管理器上有多个PowerShell.exe程序。
我们已尝试添加exit
和break
,但窗口仍然保持不变。
在执行完脚本后,PowerShell脚本中是否有任何方法强制关闭控制台窗口?
答案 0 :(得分:1)
您在调用电源时是否尝试过-NonInteractive模式
C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -WindowStyle Hidden -NonInteractive C:\ scripts \ myscript.ps1
答案 1 :(得分:1)
通过使用Start-Process从PowerShell启动C#程序,您可以并行执行它,并且不需要让PowerShell等待它完成。您可以使用-WindowStyle Hidden来确保C#程序在启动时不会创建新窗口。
Start-Process .\ProductiondataImportNew.exe -WindowStyle Hidden
答案 2 :(得分:0)
将它放在.ps1文件的底部:
Stop-Process -processname powershell
发现这是由于StartInfo.RedirectStandardInput被设置为true,我想如果它期望更多输入它不会关闭...将它设置为false会在执行后正确关闭窗口。