簡體   English   中英

Powershell中的哈希表格式數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM