PowerShell'de Boş, Boş Değil veya Boş Nasıl Denetlenir?
Bir PowerShell kullanıcısı olarak birçok kez boş değerleri kontrol etme ihtiyacıyla karşılaştım. Bu, boş değerlerin bulunabileceği ve düzgün şekilde işlenmezse hatalara yol açabileceği yaygın bir senaryodur. PowerShell ile çalışırken null ve empty kavramlarını anlamak çok önemlidir. Verilerin etkili bir şekilde işlenmesine ve doğrulanmasına yardımcı olarak komut dosyalarınızın genel sağlamlığına katkıda bulunurlar. Bu başlangıç kılavuzunda, PowerShell'de null, null değil ve empty nüanslarını, anlamanızı kolaylaştırmak için pratik örneklerle desteklenerek çözeceğiz.
PowerShell'de Null, Null Değil ve Boş Konularına Giriş
PowerShell'de boş değer, bir değerin yokluğunu temsil eder. Boş bir dize veya sıfır değeriyle aynı şey değildir. Bir değer beklendiği halde henüz mevcut olmadığında genellikle yer tutucu olarak kullanılır. Örneğin, bir değişken bildirirseniz ancak ona bir değer atamazsanız değişken varsayılan olarak Null olacaktır. Ayrıca $null anahtar sözcüğünü kullanarak bir değişkeni Null olarak ayarlayabilirsiniz. Boş bir değer, değişkenler, diziler ve diğer nesnelerle çalışırken sorunlara neden olabilir.
Konunun özüne dalmadan önce 'Null', 'NotNull' ve 'Boş' terimlerini çözelim.
- Null: PowerShell'de 'null', bir değerin bulunmadığını belirtir. Bir değişkenin bildirildiği ancak herhangi bir değer atanmadığı anlamına gelir.
- NotNull: Adından da anlaşılacağı gibi 'NotNull', bir değişkene değer atandığını belirtir.
- Boş: PowerShell'deki boş bir değer, boş bir dize veya boş bir dizi gibi bildirilen ve boş bir değer atanan bir değişkeni ifade eder.
PowerShell'de Boş Değerleri Kontrol Etme
Null değerleri aritmetik işlemlerde veya dize birleştirmede kullanıldığında sorunlara neden olabileceğinden, PowerShell'de null değerlerin kontrol edilmesi yaygın bir senaryodur. Hatalardan kaçınmak için boş değerlerin doğru şekilde işlenmesi önemlidir. -eq operatörü bir değerin null olup olmadığını kontrol etmek için kullanılır. Aşağıdaki kod parçacığı PowerShell'de boş değerlerin nasıl kontrol edileceğini gösterir:
if ($variable -eq $null) {
Write-Host "Variable is null"
}
else {
Write-Host "The variable is not null."
}
PowerShell'de Null Olmayan Değerler Nasıl Kontrol Edilir?
Not Equal Null operatörü, bir değerin null değerine eşit olup olmadığını kontrol etmek için kullanılır. Aşağıdaki kod parçacığı, PowerShell'de Eşit Değil Boş operatörünün nasıl kullanılacağını gösterir:
$var = "Hello, world!"
if ($var -ne $null) {
Write-Host "The variable is not null."
} else {
Write-Host "The variable is null."
}
PowerShell'de Boş Dizeleri Kontrol Etme
Boş bir dize, sıfır karakterli bir dizedir. PowerShell'de, bir dizenin boş olup olmadığını kontrol etmek için -eq operatörünü boş bir dizeyle kullanabilirsiniz:
$var = ""
if ($var -eq "") {
Write-Host "The variable is empty."
} else {
Write-Host "The variable is not empty."
}
PowerShell IsNullOrEmpty Yöntem
PowerShell'in boş değeri veya boş değeri kontrol etmek için bir yöntemi vardır: IsNullOrEmpty. [string] sınıfındaki Is Null or Empty yöntemi, bir değerin null veya boş olup olmadığını kontrol etmek için kullanılır. Aşağıdaki kod parçacığı, PowerShell'de Is Null veya Empty ifadesinin nasıl kullanılacağını gösterir:
$variable = ""
if ([string]::IsNullOrEmpty($variable)) {
Write-Host "Variable is null or empty"
}
PowerShell Boş veya Boş Değil
Is Not Null or Empty ifadesi, bir değerin null veya boş olup olmadığını kontrol etmek için kullanılır. Aşağıdaki kod parçacığı, PowerShell'de If Not Null veya Empty ifadesinin nasıl kullanılacağını gösterir:
$variable = "some value"
if (![string]::IsNullOrEmpty($variable)) {
Write-Host "Variable is not null or empty"
}
PowerShell'de boş ve boş dize denetimlerini birleştirmek için -or operatörünü de kullanabilirsiniz. Örneğin:
if ($stringVariable -eq $null -or $stringVariable -eq "") {
Write-Host "The string variable is null or empty"
}
PowerShell IsNullOrWhiteSpace Yöntemi
IsNullOrWhiteSpace yöntemi, .Net Framework System.String sınıfının yerleşik bir statik yöntemidir. Bir dizenin boş olup olmadığını veya yalnızca boşluk karakterleri içerip içermediğini belirlemek için kullanılır.
PowerShell'de IsNullOrWhiteSpace yöntemini kullanmak için şu sözdizimini takip edebilirsiniz:
$variable = " "
if ([string]::IsNullOrWhiteSpace($variable)) {
Write-Host "Variable is white space or null"
}
Boş ve Boş Dizeler için PowerShell Dökümü
Bir değişkeni boole değerine dönüştürmek için PowerShell dökümünü kullanabilirsiniz. Boş veya boş bir dize değişkenini boole olarak değiştirdiğinizde sonuç false olacaktır. Örneğin:
$nullVariable = $null
$emptyStringVariable = ""
$notEmptyStringVariable = "Hello"
[bool]$nullVariable # outputs false
[bool]$emptyStringVariable # outputs false
[bool]$notEmptyStringVariable # outputs true
PowerShell'de Boş Değerleri İşleme
PowerShell'de hataları önlemek için boş değerlerin doğru şekilde işlenmesi önemlidir. Boş değerleri kontrol etmek ve bunları uygun şekilde ele almak çok önemlidir. Boş değerleri işlemenin bir yolu, değer boşsa varsayılan bir değer ayarlamaktır. Aşağıdaki kod parçacığı, PowerShell'de boş değerlerin işlenmesine ilişkin bir örneği gösterir:
$variable = $null
if ($variable -eq $null) {
$variable = "default value"
}
Boş Değerler İçin PowerShell Hata İşleme
PowerShell'de boş ve boş dizelerle çalışırken hataların işlenmesi önemlidir. Bir değer null ise PowerShell bazı komutlar için hatalar üretir. Hataları işlemek için Try ve Catch ifadelerini kullanabilirsiniz.
Örneğin:
$var = $null
try {
$var.Length()
} catch {
Write-Host "The variable is null or empty"
}
Bu komut dosyasında, $nullVariable kasıtlı olarak $null olarak ayarlanmıştır ve ardından bu boş nesne üzerinde SomeProperty'e erişmeye çalışıyoruz. Bu, boş bir nesnenin özelliklerine erişemediğiniz için "Boş değerli bir ifadede bir yöntemi çağıramazsınız." hatası verecektir.
Dizilerde Null'un PowerShell ile İşlenmesi
PowerShell'de dizilerle çalışırken boş ve boş dize değerlerinin nasıl işlendiğini anlamak önemlidir. Bir dizinin boş mu yoksa boş mu olduğunu kontrol etmek için IsNullOrEmpty yöntemini kullanabilirsiniz. Ancak bir dizi boş veya boş dize değerleri içeriyorsa IsNullOrEmpty yöntemi beklenen sonucu döndürmeyebilir.
Bir dizinin boş veya boş dize değerleri içerip içermediğini kontrol etmek için Nerede-Object cmdlet'ini -ne ve -notmatch operatörleriyle birlikte kullanabilirsiniz. Örneğin:
$array = @("Hello", $null, "", "World")
foreach ($item in $array) {
if ([string]::IsNullOrEmpty($item)) {
Write-Output "The array contains a null or empty string value."
break
}
}
Bu örnekte foreach döngüsü dizideki her öğe üzerinde yinelenir. Bir öğe null veya boş bir dize ise, bir mesaj yazdırır ve döngüyü bozar.
Where-Object cmdlet'ini kullanma:
$array = @("Hello", $null, "", "World")
if ($array | Where-Object { [string]::IsNullOrEmpty($_) }) {
Write-Output "The array contains a null or empty string value."
}
Bu örnekte, Where-Object diziyi boş veya boş dize değerlerine göre filtreler. Böyle bir değer mevcutsa bir mesaj yazdırır.
Null değerlerle çalışırken En İyi Uygulamalar
PowerShell'de boş ve boş dizelerle çalışırken doğru sonuçlar elde etmek için aşağıdaki en iyi uygulamaların izlenmesi önerilir:
- Bir değişkenin null olup olmadığını kontrol etmek için
-eqoperatörünü$nullile birlikte kullanın. - Bir dizenin boş mu yoksa boş mu olduğunu kontrol etmek için
IsNullOrEmptyyöntemini kullanın. - Boş ve boş dize kontrolleri için bir değişkeni bir boolean değerine dönüştürmek için dökümü kullanın.
- Bir dizinin boş dize değerleri içerip içermediğini kontrol etmek için
Where-Objectcmdlet'ini kullanın. - Hataları
TryveCatchifadeleriyle işleyin.
Çözüm
Sonuç olarak, null, null değil ve boş kavramlarını anlamak, etkili PowerShell betikleri yazmanın anahtarıdır. PowerShell, bir değişkenin boş olup olmadığını, boş olmadığını veya boş olup olmadığını kontrol etmek için basit ama güçlü araçlar sunarak komut dosyası oluşturma yolculuğunuzda size kontrol ve esneklik sağlar. Bunları doğru şekilde kullanmayı öğrenmek, hatasız PowerShell betikleri yazmanıza yardımcı olabilir. Bu makaleden edineceğiniz bilgilerle PowerShell kodunuzun güvenilir ve verimli olmasını sağlayabilirsiniz.

