Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kısa açıklama
Bir veya daha fazla koşullu testin sonuçlarına göre deyim listelerini çalıştırmak için kullanabileceğiniz bir dil komutunu açıklar.
Uzun açıklama
Belirtilen bir koşullu test true olarak değerlendirilirse kod bloklarını çalıştırmak için If deyimini kullanabilirsiniz. Ayrıca, önceki tüm testler false olarak değerlendirilirse çalıştırılacak bir veya daha fazla ek koşullu test de belirtebilirsiniz. Son olarak, önceki başka bir koşullu test doğru olarak değerlendirilmezse çalıştırılacak ek bir kod bloğu belirtebilirsiniz.
Sözdizimi
Aşağıdaki örnekte If deyimi söz dizimi gösterilmektedir:
if (<test1>)
{<statement list 1>}
[elseif (<test2>)
{<statement list 2>}]
[else
{<statement list 3>}]
bir If deyimi çalıştırdığınızda PowerShell, <test1> koşullu ifadesini true veya false olarak değerlendirir.
<test1> doğruysa, <statement list 1> komutu çalışır ve PowerShell If deyiminden çıkar.
<test1> false ise PowerShell, <test2> koşullu deyimi tarafından belirtilen koşulu değerlendirir.
Boole değerlendirmesi hakkında daha fazla bilgi için bkz. about_Booleans.
<test2> doğruysa, <statement list 2> komutu çalışır ve PowerShell If deyiminden çıkar. Her ikisi de <test1> ve <test2> false olarak <statement list 3> değerlendirilirse, kod bloğu çalışır ve PowerShell If deyiminden çıkar.
Bir dizi koşullu testi zincirleme için birden çok Elseif deyimi kullanabilirsiniz. Böylece, her test yalnızca önceki tüm testler yanlışsa çalıştırılır. Birçok If deyimi içeren bir Elseif deyimi oluşturmanız gerekiyorsa, bunun yerine bir Switch deyimi kullanmayı göz önünde bulundurun.
Örnekler:
En basit If deyim tek bir komut içerir ve herhangi bir Elseif deyimi veya Else deyimi içermez. Aşağıdaki örnek, If deyiminin en basit biçimini gösterir:
if ($a -gt 2) {
Write-Host "The value $a is greater than 2."
}
Bu örnekte, $a değişkeni 2'den büyükse, koşul doğru olarak değerlendirilir ve deyim listesi çalışır. Ancak, $a 2'den küçük veya 2'ye eşitse ya da varolan bir değişken değilse, If deyim bir ileti görüntülemez.
Else deyimi eklendiğinde, $a 2'den küçük veya buna eşit olduğunda bir ileti görüntülenir. Sonraki örnekte gösterildiği gibi:
if ($a -gt 2) {
Write-Host "The value $a is greater than 2."
}
else {
Write-Host ("The value $a is less than or equal to 2," +
" is not created or is not initialized.")
}
Bu örneği daha da hassaslaştırmak için, $a değeri 2'ye eşit olduğunda bir mesaj görüntülemek için Elseif ifadesini kullanabilirsiniz. Sonraki örnekte gösterildiği gibi:
if ($a -gt 2) {
Write-Host "The value $a is greater than 2."
}
elseif ($a -eq 2) {
Write-Host "The value $a is equal to 2."
}
else {
Write-Host ("The value $a is less than 2 or" +
" was not created or initialized.")
}
Üçlü operatör söz dizimini kullanma
PowerShell 7.0, üçüncül işlecini kullanarak yeni bir söz dizimi kullanıma sunulmuştur. C# üçüncül işleç söz dizimini izler:
<condition> ? <if-true> : <if-false>
Üçüncül işleç, basitleştirilmiş if-else deyimi gibi davranır.
<condition> ifadesi değerlendirilir ve sonuç, hangi dalın daha sonra değerlendirileceğini belirlemek için boole değerine dönüştürülür:
-
<if-true>ifadesi doğruysa<condition>ifadesi yürütülür -
<if-false>ifadesi false ise<condition>ifadesi yürütülür
Örneğin:
$message = (Test-Path $path) ? "Path exists" : "Path not found"
Bu örnekte, döndürüldüğünde Test-Path$truedeğeri $message "Yol var" şeklindedir. Döndürüldüğünde Test-Path$false, değeri $message "Yol bulunamadı" olur.
$service = Get-Service BITS
$service.Status -eq 'Running' ? (Stop-Service $service) : (Start-Service $service)
Bu örnekte, hizmet çalışıyorsa durdurulur ve durumu Çalışmıyor ise başlatılır.