在PowerShell 3.0中自动刷新Out-GridView

时间:2014-02-27 17:20:16

标签: powershell

我试图让PowerShell(v3.0)创建的GridView在定时的基础上自动刷新。让我们举一个简单的例子:

Get-Process | Out-GridView

这显示了我所有正在运行的进程的漂亮形式。如何让这个表单自动刷新60秒?作为奖励,表单是否可以刷新并保留先前选择的排序列/订单?

1 个答案:

答案 0 :(得分:2)

Out-GridView不支持自动刷新。 Out-GridViewGet-Process获取结果(在此代码中仅调用一次)并将其显示在gridview中。

要获得自动刷新,您需要在计时器上使用自定义更新逻辑创建自己的自定义表单,或者创建一个关闭gridview并在x秒后重新打开它的循环。像这样:

test.ps1

param(
[int]$waitseconds = 60
)

while($true) {
    Start-Process -FilePath powershell.exe -ArgumentList "-WindowStyle Hidden -Command &{ Get-Process | out-gridview; sleep $waitseconds; exit }" -Wait
}

用法:

test.ps1

test2.ps1 -waitseconds 5

请注意,每次刷新时,gridview都会将焦点放在屏幕上(显示在顶部)。

要获得所需的所有功能,您需要创建自己的表单。