如何在 PowerShell 中檢查 PSCustomObject 是否為空?


要檢查 PowerShell 中的 PSCustomObject 是否為空,我們需要檢查 PSCustomObject 的欄位。請考慮以下示例:

示例

$output = [PSCustomObject]@{
   Name = 'John'
   City = 'New York'
   Country = 'US'
   Company = 'Alpha'  
}
$output1 = [PSCustomObject]@{
   Name = ''
   City = ''
   Country = ''
   Company = ''
}

輸出

PS C:\WINDOWS\system32> $output
Name    City     Country    Company
----    ----     -------    -------
John    New York  US        Alpha
PS C:\WINDOWS\system32> $output1
Name    City     Country    Company
----    ----     -------    -------

在這個例子中,我們有 Output 和 Output1 兩個 PSCustomObjects,其中 output1 是空的。首先,我們不能透過 Count 屬性來判斷,因為自定義物件沒有這種直接的方法。例如:

示例

PS C:\WINDOWS\system32> $output.count
PS C:\WINDOWS\system32> $output1.count

不會有任何輸出,因為 PSCustomObject 不支援 Count 屬性,但是如果我們使用 ToString() 方法將其轉換為字串,那麼就可以使用 count 方法。例如:

示例

PS C:\WINDOWS\system32> $output.ToString().Count
1
PS C:\WINDOWS\system32> $output1.ToString().Count
1

但是它完全將 PSCustomObject 視為一個整體,因此始終返回計數 1。但是我們可以透過檢查其欄位來確定 PSCustoObject 是否為空。因此,我們將在這裡檢查物件的任何屬性,如果它為空,則 PSCustomObject 為空。

PS C:\WINDOWS\system32> $output.Country -eq ""
False
PS C:\WINDOWS\system32> $output1.Country -eq ""
True

因此,Output1 物件為空。在某些情況下,您可以檢查多個屬性以確認 PSCustomObject 是否為空。

更新於:2021年2月8日

3K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告