我自己试图找到一个解决方案,如果已经在某个地方得到解答我会道歉,但我可以自己完成这项工作。
我编写了一个脚本列表中的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
outpout看起来像这样:
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
我尝试了不同的东西,但我总是得到同样的输出。 如果有人可以提供帮助,将不胜感激!
答案 0 :(得分:1)
嗯,我看到更少的代码。我想你错过了一个循环。试试这个foreach wlan你选择数据:
$WLANS=@{}
$CurrentWLAN = "" | Select-Object -Property SSID, BSSID, RSSI
$CurrentWLAN.SSID = $SSID
$CurrentWLAN.BSSID = $BSSID
$CurrentWLAN.RSSI = $RSSI
$WLANS += $CurrentWLAN
答案 1 :(得分:1)
您需要构建自定义对象,而不是将属性放在哈希表中。它看起来像这样
$Processes = Get-Process | select -first 2
$CustomObj = Foreach ($Process in $Processes)
{
[pscustomobject] @{
'Name' = $Process.ProcessName
'Handles' = $Process.Handles
'Comment' = 'test123'
}
}
$CustomObj
所以你有你的数组,你遍历数组,每个循环用你的名字/值对构建一个自定义对象。然后在对象数组$ CustomObj
中收集各个对象