Boş veya Boş Değerler için PowerShell Where-Object


PowerShell'de boş veya boş değerlerle uğraşmanız gerekebilir. Bu PowerShell eğitiminde, PowerShell'de null ve boş değerlerle çalışmak için Nerede-Object'in nasıl kullanılacağını açıklayacağım.

PowerShell'de bir özelliğin null veya boş olduğu nesneleri filtrelemek için, bu koşulları kontrol eden bir komut dosyası bloğuyla birlikte Where-Object cmdlet'ini kullanabilirsiniz. Örneğin, "Ad" özelliğinin boş veya boş bir dize olduğu tüm öğeleri bulmak için $items | Where-Object { -not $_.Name . Özellikle boş olmayan ve boş olmayan dizeleri kontrol etmek için $items | Where-Object { $_.Name veya $items | Daha fazla netlik için Where-Object { -not [string]::IsNullOrEmpty($_.Name) .

PowerShell'deki Where-Object cmdlet'i, nesneleri özellik değerlerine göre filtrelemenize olanak tanır.

PowerShell nerede nesnesi null

PowerShell'de Where-Object kullanarak boş değerleri kontrol etmek için -eq $null operatörünü kullanabilirsiniz. İşte basit bir örnek:

$users = Get-User -Filter *
$nullUsers = $users | Where-Object { $_.Property -eq $null }

Bu örnekte $nullUsers, belirtilen özelliğin null olduğu tüm kullanıcıları içerecektir.

PowerShell nerede nesnesi boş değil denetimi

Bunun tersine, null olmayan bir özelliğe sahip nesneleri filtrelemek istiyorsanız PowerShell'de Where-Object ile -ne $null komutunu kullanabilirsiniz. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

$nonNullUsers = $users | Where-Object { $_.Property -ne $null }

Bu, Property'in boş olmadığı tüm kullanıcıları döndürür.

PowerShell nerede nesnesi boş veya boş değil Kontrol ediliyor

Bazen bir özellik null olmayabilir ancak boş bir dize olabilir ve bu genellikle null değeri kadar kullanılamaz. PowerShell'de ne null ne de boş olan değerleri kontrol etmek için boş dizeleri hariç tutmak üzere -ne $null'u başka bir koşulla birleştirebilirsiniz:

$validUsers = $users | Where-Object { $_.Property -ne $null -and $_.Property -ne '' }

Bu, Property'in ne boş ne de boş bir dize olmasını sağlar.

Boş veya Boş Olmayan Dizeleri Kontrol Etme

Dizelerle uğraşırken, bir özelliğin hem null hem de boş bir dize olmadığından emin olmak isteyebilirsiniz. PowerShell, bunu kontrol etmek için kullanılabilecek String.IsNullOrEmpty() adlı bir yöntem sağlar:

$validUsers = $users | Where-Object { -not [string]::IsNullOrEmpty($_.Property) }

Bu, Özellik'in boş ve boş olmayan bir dize olduğu tüm kullanıcıları döndürür.

İşte bir örnek:

Bu kavramları bazı örneklerle uygulamaya koyalım. Bir süreç listeniz olduğunu ve şirket adı ile ilişkili olmayan süreçleri bulmak istediğinizi varsayalım:

$processes = Get-Process
$processesWithoutCompany = $processes | Where-Object { $_.Company -eq $null }

Bu size Company özelliğinin null olduğu tüm işlemleri verecektir.

Boş veya boş olmayan bir şirket adına sahip işlemleri bulmak istiyorsanız aşağıdakileri yapabilirsiniz:

$processesWithValidCompany = $processes | Where-Object { $_.Company -ne $null -and $_.Company -ne '' }

Şirket adının özellikle boş olmayan bir dize olduğu süreçleri bulmak istiyorsanız şunları kullanabilirsiniz:

$processesWithValidCompany = $processes | Where-Object { -not [string]::IsNullOrEmpty($_.Company) }

Çözüm

PowerShell'de null, null değil ve boş değerlerin nasıl kontrol edileceğini anlamak, komut dosyası oluşturma ve otomasyon görevleri için çok önemlidir. Where-Object cmdlet'i, nesneleri boş veya boş değere göre filtrelemenize yardımcı olabilir. Boş değerleri kontrol etmek için -eq $null kullanmayı, boş olmayan değerleri kontrol etmek için -ne $null kullanmayı unutmayın ve [string]::IsNullOrEmpty() kullanmayı düşünün dizelerle uğraşırken boş olmayan ve boş olmayan değerleri kontrol etmek için.

Bu PowerShell eğitiminde, PowerShell Where-object'te null veya boş olup olmadığının nasıl kontrol edileceğini tartışıyoruz.

İlgili makaleler