如何隐藏PowerShell进度消息?

11

我认为Write-Progress是一个非常漂亮的Cmdlet。实际上,Sharepoint将其与Start-SPAdminJob命令一起使用。

这所有的一切都很好,但问题在于Start-SPAdminJob未能正确“处理”Write-Progress对话框。它从未设置为100%完成,这意味着它会一直停留在Powershell对话框中,直到您退出脚本 - 这反过来会隐藏部分消息在“进度窗口”下面。

有没有办法强制现有的Write-Progress“退出”或设置为100%完成?有没有办法找出Start-SPAdminJob命令正在使用的进度ID - 这样我就可以手动设置百分比。

2个回答

17

您可以通过在之前执行以下操作来防止进度条首次出现:

$ProgressPreference = "SilentlyContinue";

你可以在此之后将首选项恢复为"继续"。当然,如果你实际上想使用该栏,则帮助不大...


能否告诉我你是怎么知道这个神奇的方法的?我不知道我可以直接设置ProgressPreference...还有更多秘密开关吗? :) - Dennis G
3
请看 Get-Variable *preference 命令,它会列出所有的偏好变量。 - stej
3
更好的做法是:获取有关首选项变量的帮助。 - x0n
3
更好的是:获取有关自动变量的帮助。 - Start-Automating
3
更好的方式:Get-Help *|Get-Help |more。现在你知道一切了;-)。(翻译说明:该句为计算机命令,意为在Windows PowerShell中获取帮助信息并进行分页显示。原文使用了类似于“even betterer”的单词来夸张强调,“now you know everything”也是一种夸张表达,故保留原文中的拼写错误和符号表达。) - Rynant
显示剩余2条评论

7
这段代码会强制将进度条设置为100%并隐藏它:
Write-Progress "Done" "Done" -completed

1
如果是我开始进度条,那就没问题了。但这个问题比较特殊,是第三方启动了进度条,我需要找到一种方法来关闭它。 - Dennis G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接