0
我試圖讓由PowerShell(v3.0)創建的GridView以定時方式自動刷新。讓我們舉一個簡單的例子:PowerShell 3.0中的自動刷新Out-GridView
Get-Process | Out-GridView
這顯示了我所有正在運行的進程的漂亮形式。我怎樣才能讓這個表單自動刷新60秒?作爲獎勵,表單是否可以刷新並保留之前選擇的排序欄/順序?
我試圖讓由PowerShell(v3.0)創建的GridView以定時方式自動刷新。讓我們舉一個簡單的例子:PowerShell 3.0中的自動刷新Out-GridView
Get-Process | Out-GridView
這顯示了我所有正在運行的進程的漂亮形式。我怎樣才能讓這個表單自動刷新60秒?作爲獎勵,表單是否可以刷新並保留之前選擇的排序欄/順序?
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將重點放在屏幕(出現在上面)。
要獲得您想要的所有功能,您需要創建自己的表單。
我希望PowerShell有更優雅的東西。這種方法會導致每個GridView窗口在屏幕上跳轉,但是您確實回答了我用工作方法提出的問題,我非常感謝您的回覆。 – bigmac
PowerShell有更優雅的東西。它具有.Net框架,因此您可以創建適合您需求的自定義表單和邏輯。但是,Microsoft無法爲每種可能的情況創建一個cmdlet。如果您四處搜索,則某人可能已創建了模塊中腳本或cmdlet所需的內容。 :) –