[英]Array Of Hashtable Formating in Powershell
我已經嘗試過自己找到解決方案,如果在某個地方已經解決了該問題,我深表歉意,但我自己無法完成這項工作。
我編寫了一個腳本,列出了wifi網絡列表,獲取了不同的信息,並將它們放在哈希表中。 從那里我創建了一個PSObject。
代碼如下:
$WLANS=@{}
$wlanData = netsh wlan show networks mode=BSSID
( ... Here i extract all the info from $Wlandata ...)
$WLANS.SSID = $SSID
$WLANS.BSSID = $BSSID
$WLANS.RSSI = $RSSI
$(foreach ($ht in $WLANS){new-object PSObject -Property $ht}) | Format-Table -AutoSize
支出看起來像這樣:
RSSI SSID BSSID
---- ---- -----
{97, 16} {TEST, SFR-6019} {xx:xx:xx:xx:xx:xx, yy:yy:yy:yy:yy:yy}
我希望它看起來像這樣:
RSSI SSID BSSID
---- ---- -----
97 TEST xx:xx:xx:xx:xx:xx
16 SFR-6019 yy:yy:yy:yy:yy:yy
我嘗試了不同的方法,但始終獲得相同的輸出。 如果有人可以幫助,將不勝感激!
嗯,我看到更少的代碼。 我想你錯過了一個循環。 在選擇數據時嘗試以下方法:
$WLANS=@{}
$CurrentWLAN = "" | Select-Object -Property SSID, BSSID, RSSI
$CurrentWLAN.SSID = $SSID
$CurrentWLAN.BSSID = $BSSID
$CurrentWLAN.RSSI = $RSSI
$WLANS += $CurrentWLAN
無需將屬性放在哈希表中,您需要構建一個自定義對象。 看起來像這樣
$Processes = Get-Process | select -first 2
$CustomObj = Foreach ($Process in $Processes)
{
[pscustomobject] @{
'Name' = $Process.ProcessName
'Handles' = $Process.Handles
'Comment' = 'test123'
}
}
$CustomObj
這樣就擁有了數組,遍歷數組,每個循環都使用名稱/值對構建了一個自定義對象。 然后將各個對象收集在對象數組$ CustomObj中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.