PowerShell'de Bir Değişkenin Boş Olup Olmadığı Nasıl Kontrol Edilir?
Geçenlerde abonelerimden biri benden PowerShell'de bir değişkenin boş olup olmadığını kontrol etmemi istedi. PowerShell ile çalışıyorsanız bu çok yaygın bir gereksinimdir. Bu eğitimde, PowerShell'de bir değişkenin boş olup olmadığını kontrol etmek için farklı yöntemleri örneklerle ve tam komut dosyalarıyla açıklayacağım.
PowerShell'de bir değişkenin boş olup olmadığını kontrol etmek için -eq (eşittir) operatörünü kullanabilirsiniz. Örneğin, $variable değişkeniniz varsa şunu yazabilirsiniz:
if ($variable -eq $null) {
Write-Output "The variable is null."
} else {
Write-Output "The variable is not null."
}Bu yöntem, değişkeni doğrudan $null ile karşılaştırır ve bunun null olup olmadığının çıktısını verir.
PowerShell'de Null nedir?
PowerShell'de $null, bir değerin yokluğunu veya tanımsız bir değeri temsil eder. C# veya JavaScript gibi diğer programlama dillerindeki null'a benzer. Bir değişkene $null atandığında bu, onun herhangi bir veri içermediği anlamına gelir.
PowerShell'de Bir Değişkenin Boş olup olmadığını kontrol edin
Şimdi PowerShell'de bir değişkenin null olup olmadığını kontrol etmek için tüm yöntemleri kontrol edelim.
1. Temel Sıfır Kontrolü
PowerShell'de bir değişkenin null olup olmadığını kontrol etmenin en kolay yolu -eq (equals) operatörünü kullanmaktır. İşte bir örnek.
$variable = $null
if ($variable -eq $null) {
Write-Output "The variable is null."
} else {
Write-Output "The variable is not null."
}Bu örnekte, $değişken'e $null atandığından, $variable -eq $null koşulu True olarak değerlendirilir > ve komut dosyası "Değişken boş" çıktısını verir.
Çıktı aşağıdaki ekran görüntüsündedir. Yukarıdaki betiği VS kodunu kullanarak çalıştırdım.
PowerShell Global Değişkenlerine göz atın
2. -ne Operatörünü Kullanmak
PowerShell'de bir değişkenin boş olup olmadığını kontrol etmek için -ne (eşit değil) operatörünü de kullanabilirsiniz. Bu, PowerShell'de bir değişkenin boş olup olmadığını kontrol etmenin başka bir yöntemidir. Aşağıda bir örnek verilmiştir:
$variable = "PowerShell"
if ($variable -ne $null) {
Write-Output "The variable is not null."
} else {
Write-Output "The variable is null."
}Burada $değişken bir dizedir, dolayısıyla $değişken -ne $null koşulu Doğru olarak değerlendirilir ve komut dosyası şu çıktıyı verir: "Değişken: boş değil.”
Çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:
3. Boş ve Boş Dize Kontrolünü Birleştirin
Bazen PowerShell'de bir değişkenin null veya boş bir dize olup olmadığını kontrol etmek isteyebilirsiniz. Bu özellikle kullanıcı girişi veya dosya yollarıyla uğraşırken kullanışlıdır. Bu kontrolleri -or operatörünü kullanarak birleştirebilirsiniz:
$variable = ""
if ($variable -eq $null -or $variable -eq "") {
Write-Output "The variable is either null or empty."
} else {
Write-Output "The variable is not null and not empty."
}
Bu durumda, $variable boş bir dize olduğundan, $variable -eq $null -or $variable -eq "" koşulu True olarak değerlendirilir ve komut dosyası şunu verir: "Değişken ya boş ya da boş."
4. IsNullOrEmpty Yöntemini Kullanma
PowerShell, bir dizenin boş veya boş olup olmadığını kontrol etmek için [string] sınıfından IsNullOrEmpty() statik yöntemini sağlar.
$variable = ""
if ([string]::IsNullOrEmpty($variable)) {
Write-Output "The variable is either null or empty."
} else {
Write-Output "The variable is not null and not empty."
}Bu yaklaşım özellikle dizelerle çalışırken kullanışlıdır ve kontrollerinizin hem verimli hem de anlaşılması kolay olmasını sağlar.
5. Boş Birleştirme Operatörleri (PowerShell 7+)
PowerShell 7'den başlayarak, boş değerleri daha zarif bir şekilde işlemek için boş birleştirme işleçlerini ?? ve ??= kullanabilirsiniz. ?? operatörü, sol taraf boşsa sağ taraftaki değeri döndürür.
İşte tam komut dosyası.
$variable = $null
$default = "Default Value"
$result = $variable ?? $default
Write-Output $result # Outputs "Default Value"??= operatörü, bir değişkene yalnızca boş olması durumunda bir değer atar:
$variable = $null
$variable ??= "Default Value"
Write-Output $variable # Outputs "Default Value"Bu operatörler, PowerShell'de boş değerleri işlemek için daha modern bir yol sağlar.
PowerShell Yerel Değişkenlerine göz atın
PowerShell'de Bir Değişkenin Boş olup olmadığını kontrol edin: Gerçek Dünyadan Örnekler
Şimdi size bir değişkenin null olup olmadığını kontrol etmek için PowerShell'de bazı gerçek dünya örnekleri göstereyim.
Örnek 1: Kullanıcı Girişini Kontrol Etme
Bir anket için kullanıcı girdisini toplamak amacıyla bir komut dosyası yazdığınızı varsayalım. Girişi işlemeden önce boş veya boş olmadığından emin olmak istiyorsunuz. Daha sonra betiği aşağıdaki gibi yazabilirsiniz:
$userInput = Read-Host "Enter your feedback"
if ([string]::IsNullOrEmpty($userInput)) {
Write-Output "Feedback cannot be empty. Please try again."
} else {
Write-Output "Thank you for your feedback!"
}
Aşağıdaki ekran görüntüsünde PowerShell betiğinin çıktısı verilmiştir:
Örnek 2: Dosya Yollarını Doğrulama
Dosyaları işleyen bir komut dosyasında, kullanıcı tarafından sağlanan dosya yolunun boş veya boş olmadığından emin olmak isteyebilirsiniz. Aşağıdaki gibi PowerShell betiğine sahip olabilirsiniz:
$filePath = Read-Host "Enter the path to the file"
if ([string]::IsNullOrEmpty($filePath)) {
Write-Output "File path cannot be empty. Please provide a valid path."
} elseif (-Not (Test-Path $filePath)) {
Write-Output "File does not exist. Please check the path and try again."
} else {
Write-Output "Processing file: $filePath"
# Add file processing logic here
}Çözüm
PowerScehenneminde bir değişkenin boş olup olmadığını kontrol etmeniz gerekebilecek pek çok senaryo vardır., kullanıcı girişini doğrulama, dosyaları işleme, yapılandırma ayarlarını yönetme vb. gibi. Bu eğitimde, PowerShell'de bir değişkenin null olup olmadığını kontrol etmeye yönelik farklı yöntemleri açıkladım. Bunun için her zaman —ne Operatörünü kullanmanızı öneririm.


