Nesnenin PowerShell'de Özelliği olup olmadığını kontrol edin [5 Yol]
-match Parametresini Kullanma
Bir nesnenin PowerShell'de bir özelliği olup olmadığını kontrol etmek için -match parametresini kullanın.
-match Parametresini kullanın:
$greetings = "Hi"
$name = "Java2blog"
$props = $([ordered]@{
greetings=$greetings
name=$name
})
$results = New-Object psobject -Property $props
[bool] ($results.PSobject.Properties.name -match "greetings")ÇIKTI:
TrueBurada, bizim durumumuzda $result olan verilen nesnenin greetings özelliğine sahip olup olmadığını kontrol etmek için -match parametresini kullandık. Artık $result nesnesinin nasıl oluşturulduğunu öğrenmek için bu makaleye başvurabilirsiniz.
-match parametresi eşleşecek ve eğer varsa özellik adını döndürecek, belirtilen özellik yoksa hiçbir şey döndürmeyecektir. Anlamak için aşağıdaki örneklere bakın.
-match Parametresini kullanın:
$results.psobject.Properties.name -match "greetings"
$results.psobject.Properties.name -match "first_name"ÇIKTI:
greetingsBakın, yalnızca zaten var olan greetings özellik adını aldık ve ikinci komut için first_name'in mevcut olmadığını söyleyen herhangi bir hata veya uyarı almadık. Bu nedenle, özellik eşleşirse True değerini elde etmek amacıyla onu açıkça Boolean'a aktarmak için [bool] kullandık; aksi halde Yanlış.
Veri tipinin açıkça dönüştürüldüğü bu işleme tip dökümü adı verilir. Örneğin, [bool] kullanmak istemiyor ancak Boolean (True/False) cinsinden sonuçlar almak istiyorsak, o zaman aşağıdaki çözüm işimize yarayacaktır.
-contains Parametresini Kullanma
Bir nesnenin PowerShell'de bir özelliği olup olmadığını kontrol etmek için -contains parametresini kullanın.
-contains parametresini kullanın:
$greetings = "Hi"
$name = "Java2blog"
$props = $([ordered]@{
greetings=$greetings
name=$name
})
$results = New-Object psobject -Property $props
$results.PSobject.Properties.name -contains "greetings"ÇIKTI:
TrueBoolean çıktısını almak için -contains parametresini kullandık. Yani örneğin, belirtilen nesne verilen özelliği içeriyorsa True sonucunu elde ederiz; aksi halde Yanlış.
if-else Bloğunu Kullanma
Bir nesnenin PowerShell'de bir özelliği olup olmadığını kontrol etmek için if-else bloğunu kullanın.
if-else bloğunu kullanın:
$greetings = "Hi"
$name = "Java2blog"
$props = $([ordered]@{
greetings=$greetings
name=$name
})
$results = New-Object psobject -Property $props
if($results.greetings){
echo "True"
}else{
echo "False"
}ÇIKTI:
TrueYukarıdaki kodda verilen nesnenin belirtilen özelliğe sahip olup olmadığını kontrol etmek için if-else bloğunu kullandık. Burada nesnenin belirli bir özelliğini hedeflemek için nokta gösterimini kullandık. Daha sonra, eğer verilen koşul karşılanıyorsa True'u yazdırmak için echo'yu kullandık; aksi halde Yanlış.
.Match() İşlevini if-else Bloğuyla Kullanma
Bir nesnenin PowerShell'de bir özelliği olup olmadığını kontrol etmek için .Match() işlevini kullanın.
.Match() İşlevini if-else Bloğuyla kullanın:
$greetings = "Hi"
$name = "Java2blog"
$props = $([ordered]@{
greetings=$greetings
name=$name
})
$results = New-Object psobject -Property $props
if($results.PSObject.Properties.Match('greetings')){"True"}
else{"False"}ÇIKTI:
TrueBu kod, bir nesnenin belirli bir özelliğe sahip olup olmadığını kontrol etmek için yalnızca if-else bloğunu kullandığımız önceki örneğe benzer. Burada if koşulu içinde greetings özellik adını argüman olarak alan .Match() fonksiyonunu kullandık. Yine önceki örnekte olduğu gibi, if koşulu yerine getirilirse True yazdırdık; aksi halde Yanlış.
Get-Member Cmdlet'ini kullanma
Belirtilen nesnede mevcutsa, özellikle ilgili ayrıntıları almak için Get-Member cmdlet'ini kullanın.
Get-Member Cmdlet'ini kullanın:
$greetings = "Hi"
$name = "Java2blog"
$props = $([ordered]@{
greetings=$greetings
name=$name
})
$results = New-Object psobject -Property $props
Get-Member -inputobject $results -name "greetings" -Membertype PropertiesÇIKTI:
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
greetings NoteProperty string greetings=Hi
Verilen özelliğin mevcut olup olmadığını kontrol etmekle ilgilendiğimiz ve özellik adını, değerini ve MemberType'ı bilmek istediğimiz için Get-Member cmdlet'ini kullandık.
Get-Member cmdlet'i verilen nesnelerin üyelerini, yöntemlerini ve özelliklerini almak için kullanılır. Nesneyi belirtmek veya Get-Member'e yönlendirmek için -InputObject parametresini kullandık.
Belirli üye türlerini almak için -MemberType parametresini kullandık, örneğin NoteProperties; aksi halde statik üyeler hakkında bilgi almak için -Static parametresini kullanabiliriz.
Get-Member cmdlet'inin, yöntemlerin ilk önce listelendiği alfabetik olarak sıralanmış üyeleri içeren bir liste döndürdüğünü unutmayın. Get-Member cmdlet'ini if-else bloğuyla birlikte kullanabiliriz.
Get-Member'ı `if-else ile kullanın:
if(Get-Member -inputobject $results -name "greetings" -Membertype Properties){
"True"
}
else{"False"}ÇIKTI:
TrueBelirtilen koşul yerine getirilirse yukarıdaki kod True sonucunu verdi; aksi halde Yanlış. Get-Member cmdlet’inin takma adını da aşağıdaki gibi kullanabiliriz.
Get-Member Cmdlet'inin Takma Adını Kullan:
if(gm -inputobject $results -name "greetings" -Membertype Properties){"True"}
else{"False"}ÇIKTI:
TrueBunların hepsi nesnenin PowerShell'de özelliği olup olmadığını kontrol etmekle ilgilidir.
