PowerShell'de Dizeler Nasıl Karşılaştırılır?
PowerShell'de dizelerle çalışıyorsanız PowerShell'de dizeleri karşılaştırma gereksinimleriyle karşılaşabilirsiniz. Bu PowerShell eğitiminde PowerShell'de stringleri çeşitli yöntemler kullanarak nasıl karşılaştıracağımı örneklerle anlatacağım.
PowerShell'de dizeleri karşılaştırmak için, büyük/küçük harfe duyarlı olmayan eşitlik denetimleri için -eq operatörünü veya büyük/küçük harfe duyarlı karşılaştırmalar için -ceq operatörünü kullanabilirsiniz. .Equals() yöntemi, büyük/küçük harfe duyarsızlık için OrdinalIgnoreCase gibi seçeneklerle esneklik sağlar. Desen eşleştirme için joker karakterlerle birlikte -like operatörünü veya normal ifadeler için -match operatörünü kullanın. Ayrıca Compare-Object, farklılıkları vurgulamak için iki dize kümesini karşılaştırabilir.
PowerShell'deki Dizeleri Karşılaştırın
PowerShell'deki dizeleri karşılaştırmak için kullanabileceğiniz birden çok yöntem şunlardır.
1. -eq Operatörünü Kullanmak
PowerShell -eq operatörü, iki dizenin tam olarak eşit olup olmadığını kontrol etmek için kullanılır. Varsayılan olarak bu karşılaştırma büyük/küçük harfe duyarlı değildir.
Örnek:
$string1 = "NewYork"
$string2 = "newyork"
if ($string1 -eq $string2) {
Write-Output "The strings are equal."
} else {
Write-Output "The strings are not equal."
}
Bu örnekte çıktı "Dizeler eşittir" olacaktır. çünkü -eq operatörü varsayılan olarak büyük/küçük harf dikkate almaz.
Aşağıdaki ekran görüntüsü, yukarıdaki PowerShell betiğini VS kodunu kullanarak çalıştırdıktan sonraki çıktıyı gösteriyor.
Büyük/küçük harfe duyarlı bir karşılaştırma için PowerShell'de aşağıdaki örnekteki gibi -ceq operatörünü kullanabilirsiniz.
$string1 = "NewYork"
$string2 = "newyork"
if ($string1 -ceq $string2) {
Write-Output "The strings are equal."
} else {
Write-Output "The strings are not equal."
}Burada çıktı “Dizeler eşit değil” olacaktır. çünkü -ceq dizelerin büyük/küçük harf durumunu dikkate alır.
Burada çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:
PowerShell'de Değişkenleri Dizelere Dönüştürme bölümünü okuyun
2. -ne Operatörünü Kullanmak
-ne operatörü, PowerShell'de iki dizenin eşit olup olmadığını kontrol eder. Bu aynı zamanda varsayılan olarak büyük/küçük harfe duyarlı değildir.
Örnek:
$string1 = "JaneDoe"
$string2 = "JaneSmith"
if ($string1 -ne $string2) {
Write-Output "The strings are not equal."
} else {
Write-Output "The strings are equal."
}
Çıktı "Dizeler eşit değil" olacaktır. çünkü JaneDoe, JaneSmith'ten farklıdır.
Yukarıdaki kodu çalıştırdım ve çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:
3. .Equals() Yöntemini Kullanmak
İşte PowerShell'de dizeleri karşılaştırmak için başka bir yöntem, .Equals() yöntemi. .Equals() yöntemi, büyük/küçük harf duyarlılığını belirterek dizeleri karşılaştırmanıza olanak tanır.
Örnek:
$string1 = "MichaelSmith"
$string2 = "michaelsmith"
if ($string1.Equals($string2, [System.StringComparison]::OrdinalIgnoreCase)) {
Write-Output "The strings are equal."
} else {
Write-Output "The strings are not equal."
}Bu örnekte çıktı "Dizeler eşittir" olacaktır. çünkü OrdinalIgnoreCase karşılaştırmayı büyük/küçük harfe duyarlı hale getirir.
Büyük/küçük harfe duyarlı bir karşılaştırma için Ordinal'i kullanabilirsiniz:
if ($string1.Equals($string2, [System.StringComparison]::Ordinal)) {
Write-Output "The strings are equal."
} else {
Write-Output "The strings are not equal."
}Burada çıktı “Dizeler eşit değil” olacaktır. çünkü Ordinal büyük/küçük harf duyarlılığını zorunlu kılar.
PowerShell'de Bir Dizeyi Word'e Göre Böl'ü okuyun
4. Nesne Karşılaştırma Cmdlet'ini Kullanma
Compare-Object cmdlet'i, iki dize kümesini karşılaştırırken ve PowerShell'deki farkları bulurken kullanışlıdır.
Örnek:
$array1 = @("AliceJohnson", "BobSmith", "CharlieBrown")
$array2 = @("AliceJohnson", "CharlieBrown", "DavidWilliams")
$comparison = Compare-Object -ReferenceObject $array1 -DifferenceObject $array2
foreach ($difference in $comparison) {
Write-Output $difference
}Çıktı, iki dizi arasındaki farkları gösterecektir:
InputObject SideIndicator
----------- -------------
BobSmith <=
DavidWilliams =>5. -like ve -match Operatörlerini Kullanmak
PowerShell'deki dizeleri karşılaştırmak için -like ve -match operatörlerini de kullanabilirsiniz.
-like operatörü joker karakter deseni eşleştirmesi için kullanılırken, -match operatörü normal ifadeleri kullanır.
-benzeri örneği:
$string = "JessicaJones"
if ($string -like "Jessica*") {
Write-Output "The string starts with 'Jessica'."
}Çıktı şu olacaktır: "Dize 'Jessica' ile başlıyor." çünkü -like joker karakter desenlerini destekler.
-match ile örnek:
$string = "JessicaJones"
if ($string -match "^Jessica") {
Write-Output "The string starts with 'Jessica'."
}Çıktı önceki örnekle aynı olacaktır ancak -match karşılaştırmayı gerçekleştirmek için normal bir ifade kullanır.
Çözüm
PowerShell'de dizeleri karşılaştırmak, -eq ile eşitlik kontrolü yapmak veya .Equals() kullanmak ya da -like ile gelişmiş desen eşleştirmeyi kullanmak gibi çeşitli yollarla yapılabilir. ve -eşleşme.
Umarım artık çeşitli yöntemler kullanarak PowerShell'deki dizeleri nasıl karşılaştıracağınızı çok iyi anlamışsınızdır.


