我试图让PowerShell(v3.0)创建的GridView在定时的基础上自动刷新。让我们举一个简单的例子:
Get-Process | Out-GridView
这显示了我所有正在运行的进程的漂亮形式。如何让这个表单自动刷新60秒?作为奖励,表单是否可以刷新并保留先前选择的排序列/订单?
答案 0 :(得分:2)
Out-GridView
不支持自动刷新。 Out-GridView
从Get-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都会将焦点放在屏幕上(显示在顶部)。
要获得所需的所有功能,您需要创建自己的表单。