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
PowerShell'deki karşılaştırma işleçleri iki değeri karşılaştırabilir veya bir koleksiyonun öğelerini bir giriş değeriyle karşılaştırabilir.
Uzun açıklama
Karşılaştırma işleçleri, değerleri karşılaştırmanıza veya belirtilen desenlerle eşleşen değerleri bulmanıza olanak sağlar. PowerShell aşağıdaki karşılaştırma işleçlerini içerir:
eşitlik
-
-eq,-ieq,-ceq- eşittir -
-ne,-ine,-cne- eşit değil -
-gt,-igt,-cgt- daha büyük -
-ge,-ige,-cge- büyüktür veya eşittir -
-lt,-ilt,-clt- daha azdır -
-le,-ile,-cle- küçük veya eşit
ile eşleşen
-
-like,-ilike,-clike- dizgi joker karakter deseni ile eşleşir -
-notlike,-inotlike,-cnotlike- dize joker karakter deseni ile eşleşmiyor -
-match,-imatch,-cmatch- dize regex deseni ile eşleşir -
-notmatch,-inotmatch,-cnotmatch- dize regex deseni ile eşleşmiyor
Değiştirme
-
-replace,-ireplace,-creplace- bir regex deseni ile eşleşen dizeleri bulur ve değiştirir
Kapsama
-
-contains,-icontains,-ccontains- koleksiyon bir değer içeriyor -
-notcontains,-inotcontains,-cnotcontains- koleksiyon bir değer içermiyor -
-in,-iin,-cin- değer bir koleksiyonda -
-notin,-inotin,-cnotin- değer koleksiyonda değil
Tür
-
-is- her iki nesne de aynı türdedir -
-isnot- nesneler aynı türde değil
Ortak özellikler
Açık büyük/küçük harfe duyarlı işlecini kullanmadığınız sürece dize karşılaştırmaları büyük/küçük harfe duyarlı değildir. Karşılaştırma işlecini büyük/küçük harfe duyarlı hale getirmek için csonrasına bir - ekleyin. Örneğin, -ceq, -eq'in büyük/küçük harfe duyarlı sürümüdür.
Büyük/küçük harf duyarsızlığını açık hale getirmek için i'den sonra bir - ekleyin. Örneğin, -ieq açıkça büyük/küçük harfe duyarlı olmayan -eqsürümüdür.
Dize karşılaştırmaları hem büyük/küçük harfe duyarlı hem de büyük/küçük harfe duyarlı olmayan karşılaştırmalar için InvariantCulture kullanır. Karşılaştırmalar unicode kod noktaları arasındadır ve kültüre özgü harmanlama sıralamasını kullanmaz. Sonuçlar geçerli kültürden bağımsız olarak aynıdır.
Karşılaştırma ifadesindeki soldaki değer bir skaler değeri olduğunda, işleç bir Boole değeri döndürür. İfadedeki soldaki değer bir koleksiyon olduğunda işleç, koleksiyonun ifadenin sağındaki değerle eşleşen öğelerini döndürür. Sağ taraftaki değerler, koleksiyon olsalar bile her zaman tekil örnekler olarak değerlendirilir. Karşılaştırma işleçleri koleksiyonları koleksiyonlar ile etkili bir şekilde karşılaştıramaz.
Koleksiyonda eşleşme yoksa, karşılaştırma işleçleri boş bir dizi döndürür. Mesela:
$a = (1, 2) -eq 3
$a.GetType().Name
$a.Count
Object[]
0
Birkaç özel durum vardır:
- Kapsama ve tür işleçleri her zaman bir Boolean değeri döndürür.
-
-replaceişleci değiştirme sonucunu döndürür -
-matchve-notmatchişleçleri, ifadenin sol tarafı bir koleksiyon olmadığı sürece$Matchesotomatik değişkenini de doldurur.
Eşitlik İşleçleri
-eq ve -ne
Sol taraf skaler olduğunda, sağ taraf eşdeğerse -eq True döndürür, aksi takdirde -eqFalsedöndürür.
-ne tersini yapar; her iki taraf da eşdeğer olduğunda False döndürür; aksi takdirde, -neTruedöndürür.
Örnek:
2 -eq 2 # Output: True
2 -eq 3 # Output: False
'abc' -eq 'abc' # Output: True
'abc' -eq 'abc', 'def' # Output: False
'abc' -ne 'def' # Output: True
'abc' -ne 'abc' # Output: False
'abc' -ne 'abc', 'def' # Output: True
Sol taraf bir koleksiyon olduğunda, -eq sağ tarafla eşleşen üyeleri döndürürken, -ne bunları filtreler.
Örnek:
1,2,3 -eq 2 # Output: 2
'abc', 'def' -eq 'abc' # Output: abc
'abc', 'def' -ne 'abc' # Output: def
Bu işleçler koleksiyonun tüm öğelerini işler. Örnek:
'zzz', 'def', 'zzz' -eq 'zzz'
zzz
zzz
Eşitlik işleci farklı türlerdeki nesneleri karşılaştırabilir. Karşılaştırmanın sağ tarafındaki değerin karşılaştırma için sol taraftaki değerin türüne dönüştürülebileceğini anlamak önemlidir.
Örneğin, '1.0' dizesi 1değeriyle karşılaştırılacak bir tamsayıya dönüştürülür. Bu örnek Truedöndürür.
PS> 1 -eq '1.0'
True
Bu örnekte, 1 değeri '1.0'dizesiyle karşılaştırılacak bir dizeye dönüştürülür. Bu örnek Falsedöndürür.
PS> '1.0' -eq 1
False
Eşitlik işleçleri yalnızca bir skaler veya koleksiyon değil iki nesneyi kabul eder. Ancak karşılaştırma sonucunun son kullanıcı için anlamlı olacağı garanti edilemez. Aşağıdaki örnekte sorun gösterilmektedir.
class MyFileInfoSet {
[string]$File
[int64]$Size
}
$a = [MyFileInfoSet]@{File = 'C:\Windows\explorer.exe'; Size = 4651032}
$b = [MyFileInfoSet]@{File = 'C:\Windows\explorer.exe'; Size = 4651032}
$a -eq $b
False
Bu örnekte, aynı özelliklere sahip iki nesne oluşturduk. Ancak eşitlik testi sonucu, farklı nesneler oldukları için False. Benzer sınıflar oluşturmak için sınıfınızda System.IEquatable<T> uygulamanız gerekir. Aşağıdaki örnekte, uygulayan ve iki özelliği olan < sınıfının kısmen uygulanması gösterilmektedir: > ve Boyut.
class MyFileInfoSet : System.IEquatable[Object] {
[string]$File
[int64]$Size
[bool] Equals([Object] $obj) {
return ($this.File -eq $obj.File) -and ($this.Size -eq $obj.Size)
}
}
$a = [MyFileInfoSet]@{File = 'C:\Windows\explorer.exe'; Size = 4651032}
$b = [MyFileInfoSet]@{File = 'C:\Windows\explorer.exe'; Size = 4651032}
$a -eq $b
True
Rastgele nesneleri karşılaştırmanın önemli bir örneği, bunların null olup olmadığını bulmaktır. Ancak bir değişkenin $nullolup olmadığını belirlemeniz gerekiyorsa, $null eşitlik işlecinin sol tarafına yerleştirmeniz gerekir. Sağ tarafa koymak beklediğiniz şeyi yapmaz.
Örneğin, $a null öğeler içeren bir dizi olmasına izin verin:
$a = 1, 2, $null, 4, $null, 6
Aşağıdaki test $a'ın null olmadığını kontrol eder.
$null -ne $a
True
Ancak, aşağıdakiler $a'dan tüm null öğeleri filtreler:
$a -ne $null # Output: 1, 2, 4, 6
1
2
4
6
-gt, -ge, -lt ve -le
-gt, -ge, -ltve -le çok benzer şekilde davranır.
| Operatör | Şu durumlarda True döndürür:... |
|---|---|
-gt |
Sol taraf daha büyük |
-ge |
Sol taraf büyüktür veya eşittir |
-lt |
Sol taraf daha küçük |
-le |
Sol taraf daha küçük veya eşittir |
Aşağıdaki örneklerde tüm ifadeler Truegeri döner.
8 -gt 6 # Output: True
8 -ge 8 # Output: True
6 -lt 8 # Output: True
8 -le 8 # Output: True
Not
Çoğu programlama dilinde büyüktür işleci >. PowerShell'de bu karakter yeniden yönlendirme için kullanılır. Ayrıntılar için bkz. about_Redirection.
Sol taraf bir koleksiyon olduğunda, bu işleçler koleksiyonun her üyesini sağ tarafla karşılaştırır. Mantığına bağlı olarak, üyeyi tutar veya atarlar.
Örnek:
$a=5, 6, 7, 8, 9
Write-Output 'Test collection:'
$a
Write-Output "`nMembers greater than 7"
$a -gt 7
Write-Output "`nMembers greater than or equal to 7"
$a -ge 7
Write-Output "`nMembers smaller than 7"
$a -lt 7
Write-Output "`nMembers smaller than or equal to 7"
$a -le 7
Test collection:
5
6
7
8
9
Members greater than 7
8
9
Members greater than or equal to 7
7
8
9
Members smaller than 7
5
6
Members smaller than or equal to 7
5
6
7
Bu işleçler, System.IComparableuygulayan tüm sınıflarla çalışır.
Örnekler:
# Date comparison
[datetime]'2001-11-12' -lt [datetime]'2020-08-01' # True
# Sorting order comparison
'a' -lt 'z' # True; 'a' comes before 'z'
'macOS' -ilt 'MacOS' # False
'MacOS' -ilt 'macOS' # False
'macOS' -clt 'MacOS' # True; 'm' comes before 'M'
Aşağıdaki örnek, Amerikan QWERTY klavyesinde 'a' sonrasında sıralanan bir simge olmadığını gösterir. Tüm bu simgeleri içeren bir kümeyi , 'a' ile karşılaştırmak için -gt işlecine besler. Çıkış boş bir dizidir.
$a=' ','`','~','!','@','#','$','%','^','&','*','(',')','_','+','-','=',
'{','}','[',']',':',';','"','''','\','|','/','?','.','>',',','<'
$a -gt 'a'
# Output: Nothing
İşleçlerin iki tarafı makul bir şekilde karşılaştırılamazsa, bu işleçler sonlanmayan bir hata oluşturur.
Eşleşen işleçler
Eşleşen işleçler (-like, -notlike, -matchve -notmatch) belirtilen desenle eşleşen veya eşleşmeyen öğeleri bulur. ve -like deseni -notlike bir joker karakter ifadesidir (, *ve ?) [ ]ve -match-notmatch normal ifadeyi (regex) kabul eder.
Söz dizimi şöyledir:
<string[]> -like <wildcard-expression>
<string[]> -notlike <wildcard-expression>
<string[]> -match <regular-expression>
<string[]> -notmatch <regular-expression>
Bu işleçlerin girişi skaler bir değer olduğunda, Boole değeri döndürür.
Giriş bir değer koleksiyonu olduğunda, koleksiyondaki her öğe karşılaştırma için bir dizeye dönüştürülür.
-match ve -notmatch işleçleri sırasıyla eşleşen ve eşleşmeyen üyeleri döndürür. Ancak, -like ve -notlike işleçleri üyeleri string olarak döndürür.
-like ve -notlike tarafından koleksiyonun bir üyesi için döndürülen dize, işlecin karşılaştırma için kullandığı dizedir ve üye bir dizeye dönüştürülerek elde edilir.
-like ve -notlike
Örnek:
'PowerShell' -like '*shell' # Output: True
'PowerShell' -notlike '*shell' # Output: False
'PowerShell' -like 'Power?hell' # Output: True
'PowerShell' -notlike 'Power?hell' # Output: False
'PowerShell' -like 'Power[p-w]hell' # Output: True
'PowerShell' -notlike 'Power[p-w]hell' # Output: False
'PowerShell', 'Server' -like '*shell' # Output: PowerShell
'PowerShell', 'Server' -notlike '*shell' # Output: Server
En iyi sonuçlar için ve -like işleçlerinin -notlike sağ tarafı joker karakter ifadesini içeren bir dize değişmez değeri olmalıdır. PowerShell joker karakter ifadesini joker karakter ifade ayrıştırıcısına geçirir. Joker karakterlerden birini (*, ?veya [ ]) eşleştirmek için, karakterden bir ters köşe (`) karakteriyle çıkmalısınız. Örneğin, değişmez değerle ?eşleştirmek için joker karakter ifadesinde kullanın `? . Genişletilebilir bir dize ifadesi kullanırsanız PowerShell, dizeyi joker karakter ayrıştırıcısına geçirmeden önce genişletir ve bu da sıralanmamış karakterlerin joker karakter olarak gönderilmesine neden olur.
# Escaped literals in an expandable string
PS> "f`?`?"
f??
# Escaped literals in a literal string
PS> 'f`?`?'
f`?`?
# Comparison containing 2 wildcards
PS> 'f??' -like 'f??'
True
PS> 'for' -like 'f??'
True
# Comparison containing literal '?' characters
PS> 'f??' -like 'f`?`?'
True
PS> 'for' -like 'f`?`?'
False
-match ve -notmatch
-match ve -notmatch, sol taraftaki değerlerde desen aramak için normal ifadeler kullanır. Normal ifadeler e-posta adresleri, UNC yolları veya biçimlendirilmiş telefon numaraları gibi karmaşık desenlerle eşleşebilir. Sağ taraftaki dize, düzenli ifadelerinin kurallarına uymalıdır.
Skaler örnekler:
# Partial match test, showing how differently -match and -like behave
'PowerShell' -match 'shell' # Output: True
'PowerShell' -like 'shell' # Output: False
# Regex syntax test
'PowerShell' -match '^Power\w+' # Output: True
'bag' -notmatch 'b[iou]g' # Output: True
Giriş bir koleksiyonsa, işleçler bu koleksiyonun eşleşen üyelerini döndürür.
Koleksiyon örnekleri:
'PowerShell', 'Super PowerShell', 'Power's hell' -match '^Power\w+'
# Output: PowerShell
'Rhell', 'Chell', 'Mel', 'Smell', 'Shell' -match 'hell'
# Output: Rhell, Chell, Shell
'Bag', 'Beg', 'Big', 'Bog', 'Bug' -match 'b[iou]g'
#Output: Big, Bog, Bug
'Bag', 'Beg', 'Big', 'Bog', 'Bug' -notmatch 'b[iou]g'
#Output: Bag, Beg
-match ve -notmatch regex yakalama gruplarını destekler. Skaler giriş üzerinde her çalıştırıldığında ve -match sonucu Trueveya -notmatch sonucu Falseolduğunda, $Matches otomatik değişkenin üzerine yazılır.
$Matches, her zaman eşleşmenin tamamını depolayan '0' adlı bir anahtara sahip olan bir Hashtable.
Normal ifade yakalama grupları içeriyorsa, $Matches her grup için ek anahtarlar içerir.
$Matches hashtable'ının eşleşen desenlerin yalnızca ilk oluşumunu içerdiğini unutmayın.
Örnek:
$string = 'The last logged on user was CONTOSO\jsmith'
$string -match 'was (?<domain>.+)\\(?<user>.+)'
$Matches
Write-Output "`nDomain name:"
$Matches.domain
Write-Output "`nUser name:"
$Matches.user
True
Name Value
---- -----
domain CONTOSO
user jsmith
0 was CONTOSO\jsmith
Domain name:
CONTOSO
User name:
jsmith
-match sonucu Falseolduğunda veya -notmatch sonucu Trueolduğunda veya giriş bir koleksiyon olduğunda, $Matches otomatik değişkenin üzerine yazılmaz. Sonuç olarak, daha önce ayarlanan değeri veya değişken ayarlanmamışsa $null içerir. Bu işleçlerden birini çağırdıktan sonra $Matches'a başvururken, değişkenin geçerli işleç çağrısı tarafından ayarlandığını bir koşul ifadesi kullanarak doğrulamayı göz önünde bulundurun.
Örnek:
if ('<version>1.0.0</version>' -match '<version>(.*?)</version>') {
$Matches
}
Ayrıntılar için bkz. about_Regular_Expressions ve about_Automatic_Variables.
Değiştirme işleci
Normal ifadelerle değiştirme
-matchgibi -replace işleci de belirtilen deseni bulmak için normal ifadeler kullanır. Ancak -matchaksine, eşleşmeleri belirtilen başka bir değerle değiştirir.
Sözdizimi:
<input> -replace <regular-expression>, <substitute>
işleci, normal ifadeleri kullanarak bir değerin tamamını veya bir bölümünü belirtilen değerle değiştirir. işlecini, dosyaları yeniden adlandırma gibi birçok yönetim görevi için kullanabilirsiniz. Örneğin, aşağıdaki komut tüm .txt dosyalarının dosya adı uzantılarını .logolarak değiştirir:
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '\.txt$','.log' }
Varsayılan olarak, -replace işleci büyük/küçük harfe duyarlı değildir.
-creplace'ı büyük/küçük harfe duyarlı hale getirmek için kullanın. Bunu açıkça büyük/küçük harfe duyarsız hale getirmek için -ireplacekullanın.
Örnekler:
'book' -ireplace 'B', 'C' # Case insensitive
'book' -creplace 'B', 'C' # Case-sensitive; hence, nothing to replace
Cook
book
PowerShell 7.2'den itibaren, bir -replace operatör ifadesindeki sol operant bir dize değilse, bu operant bir dizeye dönüştürülür.
PowerShell kültüre duyarsız bir dize dönüştürme işlemi yapar.
Örneğin, kültürünüz Fransızca (fr) olarak ayarlandıysa, 1.2 değerinin kültüre duyarlı şekilde dizeye dönüştürülmesi 1,2olur.
PowerShell 7.2'nin öncesinde:
PS> [cultureinfo]::CurrentCulture = 'fr'
PS> 1.2 -replace ','
12
PowerShell 7.2 ve sonraki sürümlerde:
PS> [cultureinfo]::CurrentCulture = 'fr'
PS> 1.2 -replace ','
1.2
Normal ifade değiştirmeleri
Normal ifadelerle yakalama gruplarını ve değiştirmeleri kullanarak metni dinamik olarak değiştirmek de mümkündür. Yakalama gruplarına <substitute> dizesinde, grup tanımlayıcıdan önceki dolar işareti ($) karakteri kullanılarak başvurulabilir.
Aşağıdaki örnekte, -replace işleci DomainName\Username biçiminde bir kullanıcı adı kabul eder ve Username@DomainName biçimine dönüştürür:
$SearchExp = '^(?<DomainName>[\w-.]+)\\(?<Username>[\w-.]+)$'
$ReplaceExp = '${Username}@${DomainName}'
'Contoso.local\John.Doe' -replace $SearchExp, $ReplaceExp
John.Doe@Contoso.local
Uyarı
$ karakteri hem PowerShell hem de normal ifadelerde söz dizimsel rollere sahiptir:
- PowerShell'de çift tırnak işaretleri arasında değişkenleri belirler ve bir alt ifade işleci olarak görev yapar.
- Regex arama dizelerinde satırın sonunu belirtir.
- Regex değiştirme dizelerinde, bu yakalanan grupları belirtir. Normal ifadelerinizi tek tırnak işaretleri arasına koyduğunuzdan veya önüne bir backtick (
`) karakteri eklediğinizden emin olun.
Mesela:
$1 = 'Goodbye'
'Hello World' -replace '(\w+) \w+', "$1 Universe"
# Output: Goodbye Universe
'Hello World' -replace '(\w+) \w+', '$1 Universe'
# Output: Hello Universe
Regex'teki $$ değişmez değer $belirtir. Bu, yerine koyma dizesinde elde edilen değişime gerçek bir $$ dahil etmek ve değişmez değer $ eklemek içindir. Mesela:
'5.72' -replace '(.+)', '$ $1' # Output: $ 5.72
'5.72' -replace '(.+)', '$$$1' # Output: $5.72
'5.72' -replace '(.+)', '$$1' # Output: $1
Daha fazla bilgi edinmek için bkz. about_Regular_Expressions ve Normal İfadelerde Değiştirme.
Koleksiyonda değiştirme
<input> bir koleksiyon olarak -replace işleci ile kullanıldığında, PowerShell bu değişikliği koleksiyondaki her bir değere uygular. Mesela:
'B1','B2','B3','B4','B5' -replace 'B', 'a'
a1
a2
a3
a4
a5
Scriptblock ile değiştirme
PowerShell 6 ve sonraki sürümlerde işleç, -replace değiştirme işlemini gerçekleştiren bir betik bloğunu da kabul eder. Betik bloğu her eşleşme için bir kez çalışır.
Sözdizimi:
<String> -replace <regular-expression>, {<Script-block>}
Betik bloğunda $_ , değiştirilen giriş metnine ve diğer yararlı bilgilere erişmek için otomatik değişkeni kullanın. Bu değişkenin sınıf türü System.Text.RegularExpressions.Match
Aşağıdaki örnek, üç basamaklık her bir sırayı karakter eşdeğerleriyle değiştirir. Betik bloğu, değiştirilmesi gereken her üç basamak kümesi için çalışır.
'072101108108111' -replace '\d{3}', {return [char][int]$_.Value}
Hello
Kapsama işleçleri
Kapsama işleçleri (-contains, -notcontains, -inve -notin), giriş bir koleksiyon olsa bile her zaman Boole değeri döndürmeleri dışında eşitlik işleçlerine benzer. Bu işleçler ilk eşleşmeyi algıladıklarında karşılaştırmayı durdururken, eşitlik işleçleri tüm giriş üyelerini değerlendirir. Çok büyük bir koleksiyonda, bu işleçler eşitlik işleçlerinden daha hızlı sonuç verir.
-contains ve -notcontains
Sözdizimi:
<Collection> -contains <scalar-object>
<Collection> -notcontains <scalar-object>
Bu işleçler bir kümenin belirli bir öğe içerip içermediğini söyler. sağ taraf (skaler nesne) kümedeki öğelerden biriyle eşleştiğinde -notcontains bunun yerine False döndürür.
Örnekler:
'abc', 'def' -contains 'def' # Output: True
'abc', 'def' -notcontains 'def' # Output: False
'Windows', 'PowerShell' -contains 'Shell' # Output: False
'Windows', 'PowerShell' -notcontains 'Shell' # Output: True
'abc', 'def', 'ghi' -contains 'abc', 'def' # Output: False
'abc', 'def', 'ghi' -notcontains 'abc', 'def' # Output: True
Daha karmaşık örnekler:
$DomainServers = 'ContosoDC1', 'ContosoDC2', 'ContosoFileServer',
'ContosoDNS', 'ContosoDHCP', 'ContosoWSUS'
$thisComputer = 'ContosoDC2'
$DomainServers -contains $thisComputer
# Output: True
Sağ taraftaki işlenen bir koleksiyon olduğunda, bu işleçler sağ taraftaki işlenenin değerini, sol taraftaki koleksiyonla karşılaştırmadan önce dize gösterimine dönüştürür.
$a = 'abc', 'def'
'abc', 'def', 'ghi' -contains $a # Output: False
# The following statements are equivalent
$a, 'ghi' -contains $a # Output: True
'$a', 'ghi' -contains $a # Output: True
'abc def', 'ghi' -contains $a # Output: True
-in ve -notin
Sözdizimi:
<scalar-object> -in <Collection>
<scalar-object> -notin <Collection>
-in ve -notin işleçleri, -contains ve -notcontains işleçlerinin tam tersi olarak PowerShell 3'te kullanıma sunulmuştur.
-in, sol taraftaki koleksiyondaki öğelerden biriyle eşleştiğinde <scalar-object> döndürür.
-notin bunun yerine False döndürür.
Aşağıdaki örnekler, -contains ve -notcontains örnekleriyle aynı işlemi yapar, ancak bunun yerine -in ve -notin ile yazılır.
'def' -in 'abc', 'def' # Output: True
'def' -notin 'abc', 'def' # Output: False
'Shell' -in 'Windows', 'PowerShell' # Output: False
'Shell' -notin 'Windows', 'PowerShell' # Output: True
'abc', 'def' -in 'abc', 'def', 'ghi' # Output: False
'abc', 'def' -notin 'abc', 'def', 'ghi' # Output: True
Daha karmaşık örnekler:
$DomainServers = 'ContosoDC1', 'ContosoDC2', 'ContosoFileServer',
'ContosoDNS', 'ContosoDHCP', 'ContosoWSUS'
$thisComputer = 'ContosoDC2'
$thisComputer -in $DomainServers
# Output: True
Sol taraftaki işlenen bir koleksiyon olduğunda, bu işleçler değeri sağ taraftaki koleksiyonla karşılaştırmadan önce dize gösterimine dönüştürür.
$a = 'abc', 'def'
$a -in 'abc', 'def', 'ghi' # Output: False
# The following statements are equivalent
$a -in $a, 'ghi' # Output: True
$a -in '$a', 'ghi' # Output: True
$a -in 'abc def', 'ghi' # Output: True
Tür karşılaştırması
Tür karşılaştırma işleçleri (-is ve -isnot), bir nesnenin belirli bir tür olup olmadığını belirlemek için kullanılır.
Sözdizimi:
<object> -is <type-reference>
<object> -isnot <type-reference>
Örnek:
$a = 1
$b = '1'
$a -is [int] # Output: True
$a -is $b.GetType() # Output: False
$b -isnot [int] # Output: True
$a -isnot $b.GetType() # Output: True
Ayrıca bakınız
- hakkında_Boole'ler
- Hakkında_Operatörler
- hakkında_Düzenli_İfadeler
- Joker Karakterler Hakkında
- Nesne Karşılaştırma
- ForEach-Object
- Nerede-Nesne
PowerShell