powershell - 隐藏写入主机输出

标签 powershell

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

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

这可能吗?我研究了代码不喜欢的 [void] 。我可以开始工作的唯一其他方法就是用 # 注释掉它,但我确信有更好的方法。

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

Write-Host "Current Status = " $status

最佳答案

根据评论,您应该使用 Write-Verbose 而不是 Write-Host,因为这样可以轻松地为您提供所需的功能。但是,要使用 Write-Verbose,您还需要进行一些其他更改:

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

 [cmdletbinding()]
 Param()

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

其次(根据您提供的示例)您可能需要稍微重写一些(现在)Write-Verbose 字符串语句。例如:

write-host "Current Status = " $status

Write-Host配合使用,因为它接受字符串数组作为输入。 Write-Verbose 则不然,它只需要单个字符串,因此上面的示例需要更改为:

Write-Verbose "Current Status =  $status"

请注意,通过使用双引号字符串,变量仍会扩展。

关于powershell - 隐藏写入主机输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45952811/

相关文章:

powershell - 如何使用帐户 key 从 PowerShell 列出 Azure Batch 池?

Java 的 java.util.Scanner 在 PowerShell ISE 中挂起

powershell - 无法加载文件或程序集

windows - 如何获取可能的 Windows 服务状态列表?

powershell - 将 Powershell 创建的文件的编码更改为 UTF8 而不是 UCS-2 LE

PowerShell 参数默认值

powershell - 了解Powershell : example - Convert JSON to CSV

powershell - 逐行读取文件并分割值

powershell - 我的 Windows 作业流程控制语言/选项有哪些?

powershell - 在新窗口中运行Powershell