【问题标题】:Running Powershell script within Powershell 'silently'在 Powershell 中“静默”运行 Powershell 脚本
【发布时间】:2015-08-30 09:09:04
【问题描述】:

我的设置:

一个带有菜单的 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 主窗口,这不是我想要的。

【问题讨论】:

    标签: powershell


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      通过附加来修复

      | out-null
      

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

      【讨论】:

        猜你喜欢
        • 2011-05-07
        • 1970-01-01
        • 2019-02-19
        • 2021-05-13
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 2016-01-11
        • 2021-10-13
        相关资源
        最近更新 更多