about_Operator_Precedence
Kısa açıklama
PowerShell işleçlerini öncelik sırasına göre listeler.
Uzun açıklama
PowerShell işleçleri basit ama güçlü ifadeler oluşturmanıza olanak sağlar. Bu konuda, işleçler öncelik sırasına göre listelenmiştir. Öncelik sırası, Aynı ifadede birden çok işleç göründüğünde PowerShell'in işleçleri değerlendirme sırasıdır.
İşleçler eşit önceliğe sahip olduğunda, PowerShell bunları ifade içinde göründükleri şekilde soldan sağa değerlendirir. Atama işleçleri, atama işleçleri ve sağdan sola doğru değerlendirilen olumsuzlama işleçleri (!
, -not
, -bnot
) özel durumlardır.
Standart öncelik sırasını geçersiz kılmak ve PowerShell'i kapatılmamış bir bölümden önce ifadenin kapalı bölümünü değerlendirmeye zorlamak için parantez gibi kasalar kullanabilirsiniz.
Aşağıdaki listede, işleçler değerlendirildikleri sırayla listelenir. Aynı satırdaki veya aynı gruptaki işleçler eşit önceliğe sahiptir.
İşleç sütunu işleçleri listeler. Başvuru sütunu, işlecin açıklandığı PowerShell Yardım konusunu listeler. Konuyu görüntülemek için yazın get-help <topic-name>
.
İŞLEÇ | BAŞVURU |
---|---|
$() @() () @{} |
about_Operators |
. ?. (üye erişimi) |
about_Operators |
:: (statik) |
about_Operators |
[0] ?[0] (dizin işleci) |
about_Operators |
[int] (atama işleçleri) |
about_Operators |
-split (birli) |
about_Split |
-join (birli) |
about_Join |
, (virgül işleci) |
about_Operators |
++ -- |
about_Assignment_Operators |
! -not |
about_Logical_Operators |
.. (aralık işleci) |
about_Operators |
-f (biçim işleci) |
about_Operators |
- (birli/negatif) |
about_Arithmetic_Operators |
* / % |
about_Arithmetic_Operators |
+ - |
about_Arithmetic_Operators |
Aşağıdaki işleç grubu eşit önceliğe sahiptir. Büyük/küçük harfe duyarlı ve açıkça büyük/küçük harfe duyarlı olmayan değişkenleri aynı önceliğe sahiptir.
İŞLEÇ | BAŞVURU |
---|---|
-split (ikili) |
about_Split |
-join (ikili) |
about_Join |
-is -isnot -as |
about_Type_Operators |
-eq -ne -gt -ge -lt -le |
about_Comparison_Operators |
-like -notlike |
about_Comparison_Operators |
-match -notmatch |
about_Comparison_Operators |
-in -notIn |
about_Comparison_Operators |
-contains -notContains |
about_Comparison_Operators |
-replace |
about_Comparison_Operators |
Liste burada öncelik sırasına göre aşağıdaki işleçlerle devam eder:
İŞLEÇ | BAŞVURU |
---|---|
-band -bnot -bor -bxor -shr -shl |
about_Arithmetic_Operators |
-and -or -xor |
about_Logical_Operators |
Aşağıdaki öğeler true işleçleri değildir. Bunlar, PowerShell'in komut söz diziminin bir parçasıdır, ifade söz diziminin değil. Atama her zaman gerçekleşen son eylemdir.
SÖZ DİZİMİ | BAŞVURU |
---|---|
. (noktalı kaynak) |
about_Operators |
& (arama) |
about_Operators |
? <if-true> : <if-false> (Üçüncül işleç) |
about_Operators |
?? (null-coalese işleci) |
about_Operators |
| (işlem hattı işleci) |
about_Operators |
> >> 2> 2>> 2>&1 |
about_Redirection |
&& || (işlem hattı zinciri işleçleri) |
about_Operators |
= += -= *= /= %= ??= |
about_Assignment_Operators |
Örnekler
Aşağıdaki iki komut, aritmetik işleçleri ve PowerShell'i ifadenin kapalı bölümünü değerlendirmeye zorlamak için parantez kullanmanın etkisini gösterir.
PS> 2 + 3 * 4
14
PS> (2 + 3) * 4
20
Aşağıdaki örnek, yerel dizinden salt okunur metin dosyalarını alır ve değişkene $read_only
kaydeder.
$read_only = Get-ChildItem *.txt | Where-Object {$_.isReadOnly}
Bu, aşağıdaki örne eşdeğerdir.
$read_only = ( Get-ChildItem *.txt | Where-Object {$_.isReadOnly} )
İşlem hattı işleci (), atama işlecinden (|
=
) daha yüksek bir önceliğe sahip olduğundan, cmdlet'in aldığı dosyalar Get-ChildItem
değişkene Where-Object
atanmadan önce filtreleme için cmdlet'e $read_only
gönderilir.
Aşağıdaki örnek, dizin işlecinin atama işlecinden öncelikli olduğunu gösterir.
Bu ifade üç dizeden oluşan bir dizi oluşturur. Ardından, dizideki ilk dize olan ilk nesneyi seçmek için 0 değerine sahip dizin işlecini kullanır. Son olarak, seçili nesneyi dize olarak atar. Bu durumda, atamanın hiçbir etkisi yoktur.
PS> [string]@('Windows','PowerShell','2.0')[0]
Windows
Bu ifade, dizin seçiminden önce atama işleminin gerçekleşmesini zorlamak için parantez kullanır. Sonuç olarak, dizinin tamamı bir (tek) dize olarak yayınlanır. Ardından, dizin işleci dize dizisindeki ilk öğeyi seçer ve bu da ilk karakterdir.
PS> ([string]@('Windows','PowerShell','2.0'))[0]
W
Aşağıdaki örnekte( büyüktür) işleci (mantıksal AND) işlecinden daha -and
yüksek bir önceliğe sahip olduğundan -gt
ifadenin sonucu YANLIŞ olur.
PS> 2 -gt 4 -and 1
False
Aşağıdaki ifadeye eşdeğerdir.
PS> (2 -gt 4) -and 1
False
-ve işleci daha yüksek önceliğe sahipse yanıt DOĞRU olur.
PS> 2 -gt (4 -and 1)
True
Ancak bu örnek, işleç önceliğini yönetmeye yönelik önemli bir ilkeyi gösterir. Bir ifadenin yorumlanması zor olduğunda, varsayılan işleç önceliğini zorladığında bile değerlendirme sırasını zorlamak için parantez kullanın. Parantezler, betiklerinizi okuyan ve bakımını yapan kişilere niyetinizi açıkça gösterir.
Ayrıca bkz.
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin