簡體   English   中英

如何索引powershell對象中的某行

[英]How to index a certain line within a powershell object

我是一個 powershell 初學者,嘗試使用 powershell 2.0 腳本抓取 SerialNumbers。 我不確定如何索引此列表(?)以返回 SerialNo (2390)。 這是我用來定位序列號存儲位置的命令。

PS C:\WINDOWS\system32> $currentDocument.IHTMLDocument3_getElementsByTagName("table") | Select-Object outerText | Format-List

下面是結果(--- 代表刪失數據)

outerText : Welcome to ---
            Model ---
            MAC Address---
            Serial No.2390
            Firmware Version---
            System Uptime---

            ---


            Basic Settings
            ---
            Network Settings
            ---
            Serial Settings
            ---
            Operating Settings


outerText : Model Name---
            MAC Address---
            Serial No.2390
            Firmware Version---
            System Uptime---

它顯示所有的outerText 對象,並顯示兩個outerText 中保存的信息。 試圖將其設置為變量,並嘗試使用索引

$test[0]

但返回一個空行(沒有錯誤)。 有沒有辦法可以索引其中任何一個以顯示序列號?

謝謝!

編輯:也一直在玩 foreach 循環,到目前為止沒有任何返回

當您使用 Format-List 時,您將您的類型轉換為 object[],這會丟失一些您可以用來訪問變量的信息。

這種行為的簡單例子是,

$var1 = Get-Process winlogon
$var2 = Get-Process winlogon | Format-List

Write-Output "Handle for var1 -> $($var1.Handles)"
Write-Output "Handle for var2 -> $($var2.Handles)"

您可能希望 var1 和 var2 的輸出相同,但有趣的是,

輸出是

Handle for var1 -> 258
Handle for var2 -> 

並且類型也會發生變化

-> $var1.GetType()

IsPublic IsSerial Name                                     BaseType                                                                                                                                                                                  
-------- -------- ----                                     --------                                                                                                                                                                                  
True     False    Process                                  System.ComponentModel.Component                                                                                                                                                           

-> $var2.GetType()

IsPublic IsSerial Name                                     BaseType                                                                                                                                                                                  
-------- -------- ----                                     --------                                                                                                                                                                                  
True     True     Object[]                                 System.Array                  

建議

如果您希望能夠訪問 OuterText 的序列號,我建議您不要使用用於獲取$test變量的 Format-List

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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