隐藏写主机输出

Dre*_*kko 2 powershell

我正在编辑一个我需要转换为exe的脚本.它Write-Host在运行时有一些脚本状态的输出.这导致脚本的exe向用户显示对话框,迫使他们在脚本完成之前单击OK 3或4次.

我想保留Write-Host输出但只是在最终用户从exe执行它时隐藏它们(对话框).

这可能吗?我已经查看[void]了代码不喜欢的内容.我可以开始工作的另一种方式就是用它来评论#,但我确信有更好的方法.

我想要隐藏/抑制的示例:

Write-Host "Current Status = " $status
Run Code Online (Sandbox Code Playgroud)

Mar*_*agg 5

根据你应该使用的评论,Write-Verbose而不是Write-Host因为这将为你提供你想要的功能,只需要很少的努力.但是要使用,Write-Verbose还需要进行其他一些更改:

首先,您需要将其添加到脚本的顶部:

 [cmdletbinding()]
 Param()
Run Code Online (Sandbox Code Playgroud)

这为您的脚本提供了一组默认参数,其中包括-Verbose允许Write-Verbose在使用时显示任何消息的默认参数.

其次(基于您给出的示例),您可能需要稍微重写一些(现在的)Write-Verbose字符串语句.例如:

write-host "Current Status = " $status
Run Code Online (Sandbox Code Playgroud)

工程与Write-Host因为它需要字符串作为输入的阵列.同样不是这样Write-Verbose,它只需要一个字符串,所以上面的例子需要改为:

Write-Verbose "Current Status =  $status"
Run Code Online (Sandbox Code Playgroud)

请注意,通过使用双引号字符串,变量仍将展开.