我正在编辑一个脚本,需要将其转换为 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/