在Powershell中默默运行Powershell脚本'

时间:2015-08-27 19:42:22

标签: powershell

我的设置:

带有菜单的一个Powershell脚本。选择菜单项后,将为该菜单项分配一个特定的Powershell脚本。 我试图让第二个Powershell脚本静默运行,因为 - 在Powershell主脚本中没有显示任何内容。

加成: 我正在查看的完整设置是:

  • 用户运行Powershell脚本
  • 用户选择一个菜单项(这将执行另一个Powershell脚本)
  • 其他Powershell脚本中的信息未向用户显示
  • 执行第二个Powershell脚本后,将向用户显示一行文本,例如:"脚本已成功运行"

我尝试过的事情: 将以下代码添加到每个辅助脚本

$t = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);'
add-type -name win -member $t -namespace native
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0)

不幸的是,这关闭了主要的Powershell窗口,这不是我想要的。

2 个答案:

答案 0 :(得分:2)

您可以将辅助命令作为后台作业运行并等待它完成。这样,shell中没有显示输出

Start-Job -FilePath YourSecondaryScript.ps1 | Wait-Job

如果需要,您仍然可以分析作业结果(脚本输出)

答案 1 :(得分:1)

通过附加

修复
| out-null

在辅助脚本中的每行代码的末尾。