Select-String (Microsoft.PowerShell.Utility)
Select-String
- Modül:
- Microsoft.PowerShell.Utility
Dizeler ve dosyalardaki metni bulur.
Sözdizimi
Select-String
[-Culture <String>]
[-Pattern] <String[]>
[-Path] <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]Select-String
[-Culture <String>]
-InputObject <PSObject>
[-Pattern] <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]Select-String
[-Culture <String>]
-InputObject <PSObject>
[-Pattern] <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]Select-String
[-Culture <String>]
[-Pattern] <String[]>
[-Path] <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]Select-String
[-Culture <String>]
[-Pattern] <String[]>
-LiteralPath <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]Select-String
[-Culture <String>]
[-Pattern] <String[]>
-LiteralPath <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]Tanım
Select-String cmdlet'i, giriş dizeleri ve dosyalarındaki metin modellerini aramak için normal ifade eşleştirmeyi kullanır. UNIX'te grep'e veya Windows'ta findstr.exe'ye benzer Select-String'i kullanabilirsiniz.
Select-String metin satırlarını temel alır. Varsayılan olarak, Select-String her satırdaki ilk eşleşmeyi bulur ve her eşleşme için dosya adını, satır numarasını ve eşleşmeyi içeren satırdaki tüm metni görüntüler. Satır başına birden fazla eşleşme bulmak, eşleşmeden önce ve sonra metni görüntülemek veya bir eşleşmenin bulunup bulunmadığını gösteren bir Boole değeri (Doğru veya Yanlış) görüntülemek için Select-String'i yönlendirebilirsiniz.
Select-String tüm metin eşleşmelerini görüntüleyebilir veya her giriş dosyasındaki ilk eşleşmeden sonra durabilir. Select-String, belirtilen kalıpla eşleşmeyen tüm metni görüntülemek için kullanılabilir.
Ayrıca, örneğin Unicode metin dosyalarını ararken Select-String'in belirli bir karakter kodlaması beklemesi gerektiğini de belirtebilirsiniz. Select-String, dosyanın kodlama biçimini algılamak için bayt sırası işaretini (BOM) kullanır. Dosyanın BOM'u yoksa kodlamanın UTF8 olduğu varsayılır.
Örnekler
Örnek 1: Büyük/küçük harfe duyarlı bir eşleşme bulun
Bu örnek, işlem hattından Select-String cmdlet'ine gönderilen metni büyük/küçük harfe duyarlı olarak eşleştirir.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatchHello ve HELLO metin dizeleri ardışık düzen üzerinden Select-String cmdlet'ine gönderilir. Select-String, HELLO'yu belirtmek için Pattern parametresini kullanır. CaseSensitive parametresi, büyük/küçük harfin yalnızca büyük harf düzeniyle eşleşmesi gerektiğini belirtir. SimpleMatch isteğe bağlı bir parametredir ve desendeki dizenin normal ifade olarak yorumlanmadığını belirtir. Select-String, PowerShell konsolunda HELLO'yu görüntüler.
Örnek 2: Metin dosyalarındaki eşleşmeleri bulma
Bu komut, geçerli dizindeki .txt dosya adı uzantısına sahip tüm dosyaları arar. Çıktı, belirtilen dizeyi içeren dosyalardaki satırları görüntüler.
Get-Alias | Out-File -FilePath .\Alias.txt
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\*.txt -Pattern 'Get-'
Alias.txt:8:Alias cat -> Get-Content
Alias.txt:28:Alias dir -> Get-ChildItem
Alias.txt:43:Alias gal -> Get-Alias
Command.txt:966:Cmdlet Get-Acl
Command.txt:967:Cmdlet Get-AliasBu örnekte, Get-Alias ve Get-Command, geçerli dizinde iki metin dosyası oluşturmak için Out-File cmdlet'iyle birlikte kullanılır. Alias.txt ve Command.txt.
Select-String, geçerli dizindeki *) joker karakterle birlikte Path parametresini kullanır >.txt. Desen parametresi Get- ile eşleşecek metni belirtir. Select-String çıktıyı PowerShell konsolunda görüntüler. Dosya adı ve satır numarası, Desen parametresi için bir eşleşme içeren her içerik satırından önce gelir.
Örnek 3: Bir model eşleşmesi bulun
Bu örnekte, belirtilen modele ilişkin eşleşmeleri bulmak için birden fazla dosya aranır. Desen, düzenli ifade niceleyicisini kullanır. Daha fazla bilgi için bkz. about_Regular_Expressions.
Select-String -Path "$PSHOME\en-US\*.txt" -Pattern '\?'
C:\Program Files\PowerShell\6\en-US\default.help.txt:27: beginning at https://go.microsoft.com/fwlink/?LinkID=108518.
C:\Program Files\PowerShell\6\en-US\default.help.txt:50: or go to: https://go.microsoft.com/fwlink/?LinkID=210614Select-String cmdlet'i iki parametre kullanır: Path ve Pattern. Path parametresi, PowerShell dizinini belirten $PSHOME değişkenini kullanır. Yolun geri kalanı en-US alt dizinini içerir ve dizindeki her *.txt dosyasını belirtir. Desen parametresi, her dosyada bir soru işaretinin (?) eşleşeceğini belirtir. Ters eğik çizgi (\) kaçış karakteri olarak kullanılır ve soru işareti (?) normal ifade niceleyicisi olduğundan gereklidir. Select-String çıktıyı PowerShell konsolunda görüntüler. Dosya adı ve satır numarası, Desen parametresi için bir eşleşme içeren her içerik satırından önce gelir.
Örnek 4: Select-String'i bir fonksiyonda kullanma
Bu örnek, PowerShell yardım dosyalarında bir desen aramak için bir işlev oluşturur. Bu örnekte işlev yalnızca PowerShell oturumunda mevcuttur. PowerShell oturumu kapatıldığında işlev silinir. Daha fazla bilgi için bkz. about_Functions.
function Search-Help
{
$PSHelp = "$PSHOME\en-US\*.txt"
Select-String -Path $PSHelp -Pattern 'About_'
}
Search-Help
C:\Program Files\PowerShell\7\en-US\default.help.txt:67: The titles of conceptual topics begin with "About_".
C:\Program Files\PowerShell\7\en-US\default.help.txt:70: Get-Help About_<topic-name>
C:\Program Files\PowerShell\7\en-US\default.help.txt:93: Get-Help About_Modules : Displays help about PowerShell modules.
C:\Program Files\PowerShell\7\en-US\default.help.txt:97: about_Updatable_Helpİşlev, PowerShell komut satırında oluşturulur. İşlev komutu Arama-Yardım adını kullanır. İşleve ifadeler eklemeye başlamak için Enter'a basın. >> isteminden her bir ifadeyi ekleyin ve örnekte gösterildiği gibi Enter tuşuna basın. Kapanış parantezi eklendikten sonra PowerShell istemine geri dönersiniz.
Fonksiyon iki komut içerir. $PSHelp değişkeni, PowerShell yardım dosyalarının yolunu saklar. $PSHOME, dizindeki her *.txt dosyasını belirten en-US alt dizinine sahip PowerShell kurulum dizinidir.
İşlevdeki Select-String komutu, Path ve Pattern parametrelerini kullanır. Path parametresi, yolu almak için $PSHelp değişkenini kullanır. Desen parametresi, arama kriteri olarak Hakkında_ dizesini kullanır.
İşlevi çalıştırmak için Arama-Yardım yazın. İşlevin Select-String komutu, çıktıyı PowerShell konsolunda görüntüler.
Örnek 5: Windows olay günlüğünde bir dize arayın
Bu örnek, Windows olay günlüğünde bir dize arar. $_ değişkeni ardışık düzendeki geçerli nesneyi temsil eder. Daha fazla bilgi için bkz. about_Automatic_Variables.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'Get-WinEvent cmdlet'i, Uygulama günlüğünü belirtmek için LogName parametresini kullanır. MaxEvents parametresi günlükteki en son 50 olayı alır. Günlük içeriği $Events adlı değişkende depolanır.
$Events değişkeni işlem hattı boyunca Select-String cmdlet'ine gönderilir. Select-String, InputObject parametresini kullanır. $_ değişkeni geçerli nesneyi temsil eder ve message olayın bir özelliğidir. Desen parametresi Başarısız dizesini belirtir ve $_.message içindeki eşleşmeleri arar. Select-String çıktıyı PowerShell konsolunda görüntüler.
Örnek 6: Alt dizinlerde bir dize bulun
Bu örnek, bir dizinde ve onun tüm alt dizinlerinde belirli bir metin dizesini arar.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse |
Select-String -Pattern 'Microsoft' -CaseSensitiveGet-ChildItem, C:\Windows\System32*.txt'yi belirtmek için Path parametresini kullanır. Recurse parametresi alt dizinleri içerir. Nesneler işlem hattından Select-String'e gönderilir.
Select-String, Pattern parametresini kullanır ve Microsoft dizesini belirtir. CaseSensitive parametresi dizenin büyük/küçük harf harfini tam olarak eşleştirmek için kullanılır. Select-String çıktıyı PowerShell konsolunda görüntüler.
Not
İzinlerinize bağlı olarak çıktıda Erişim reddedildi mesajlarını görebilirsiniz.
Örnek 7: Bir kalıpla eşleşmeyen dizeleri bulun
Bu örnek, bir kalıpla eşleşmeyen veri satırlarının nasıl hariç tutulacağını gösterir.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set' -NotMatchGet-Command cmdlet'i, geçerli dizinde Command.txt dosyasını oluşturmak için nesneleri işlem hattından Out-File'a gönderir. Select-String, Command.txt dosyasını belirtmek için Path parametresini kullanır. Desen parametresi, arama modeli olarak Al ve Ayarla'yı belirtir. NotMatch parametresi, Al ve Ayarla'yı sonuçlardan hariç tutar. Select-String, PowerShell konsolunda Get veya Set içermeyen çıktıyı görüntüler.
Örnek 8: Maçtan önceki ve sonraki satırları bulun
Bu örnek, eşleşen desenden önceki ve sonraki satırların nasıl alınacağını gösterir.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get-Computer' -Context 2, 3
Command.txt:986:Cmdlet Get-CmsMessage 6.1.0.0 Microsoft.PowerShell.Security
Command.txt:987:Cmdlet Get-Command 6.1.2.0 Microsoft.PowerShell.Core
> Command.txt:988:Cmdlet Get-ComputerInfo 6.1.0.0 Microsoft.PowerShell.Management
Command.txt:990:Cmdlet Get-Content 6.1.0.0 Microsoft.PowerShell.Management
Command.txt:991:Cmdlet Get-ControlPanelItem 3.1.0.0 Microsoft.PowerShell.Management
Command.txt:992:Cmdlet Get-Credential 6.1.0.0 Microsoft.PowerShell.SecurityGet-Command cmdlet'i, geçerli dizinde Command.txt dosyasını oluşturmak için nesneleri işlem hattından Out-File'a gönderir. Select-String, Command.txt dosyasını belirtmek için Path parametresini kullanır. Pattern parametresi, arama modeli olarak Get-Computer'ı belirtir. Bağlam parametresi, öncesi ve sonrası olmak üzere iki değer kullanır ve çıktıdaki model eşleşmelerini açılı ayraçla (>) işaretler. Context parametresi, ilk kalıp eşleşmesinden önceki iki satırı ve son kalıp eşleşmesinden sonraki üç satırın çıktısını verir.
Örnek 9: Tüm kalıp eşleşmelerini bulun
Bu örnek, AllMatches parametresinin bir metin satırındaki her kalıp eşleşmesini nasıl bulduğunu gösterir. Varsayılan olarak, Select-String bir metin satırında yalnızca bir modelin ilk örneğini bulur. Bu örnek, Get-Member cmdlet'iyle bulunan nesne özelliklerini kullanır.
$A = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell'
$A
C:\Program Files\PowerShell\7\en-US\default.help.txt:3: PowerShell Help System
C:\Program Files\PowerShell\7\en-US\default.help.txt:6: Displays help about PowerShell cmdlets and concepts.
C:\Program Files\PowerShell\7\en-US\default.help.txt:9: PowerShell Help describes PowerShell cmdlets
$A.Matches
Groups : {0}
Success : True
Name : 0
Captures : {0}
Index : 4
Length : 10
Value : PowerShell
$A.Matches.Length
8
$B = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell' -AllMatches
$B.Matches.Length
9Get-ChildItem cmdlet'i Path parametresini kullanır. Path parametresi, PowerShell dizinini belirten $PSHOME değişkenini kullanır. Yolun geri kalanı en-US alt dizinini içerir ve dizindeki her *.txt dosyasını belirtir. Get-ChildItem nesneleri $A değişkeninde saklanır. $A değişkeni ardışık düzen üzerinden Select-String cmdlet'ine gönderilir. Select-String, her dosyada PowerShell dizesini aramak için Pattern parametresini kullanır.
PowerShell komut satırından $A değişkeninin içeriği görüntülenir. PowerShell dizesinin iki örneğini içeren bir satır var.
$A.Matches özelliği, her satırda PowerShell modelinin ilk oluşumunu listeler.
$A.Matches.Length özelliği, her satırda PowerShell modelinin ilk oluşumunu sayar.
$B değişkeni aynı Get-ChildItem ve Select-String cmdlet'lerini kullanır ancak AllMatches parametresini ekler. AllMatches, her satırda PowerShell modelinin her örneğini bulur. $A ve $B değişkenlerinde saklanan nesneler aynıdır.
$B.Matches.Length özelliği artar çünkü her satır için PowerShell modelinin her tekrarı sayılır.
Örnek 10 - 'Out-String'i kullanarak ardışık düzen nesnelerini dizelere dönüştürme
Aktarılan nesnenin ToString() sonucu, PowerShell'in biçimlendirme sistemi tarafından üretilen zengin dize temsiliyle aynı değildir. Bu nedenle, öncelikle nesneleri Out-String'e yönlendirmeniz gerekebilir.
Out-String'e yönlendirme, biçimlendirilmiş çıktıyı tek bir çok satırlı dize nesnesine dönüştürür. Bu, Select-String'in bir eşleşme bulduğunda tüm çok satırlı dizeyi çıkaracağı anlamına gelir.
PS> $hash = @{
Name = 'foo'
Category = 'bar'
}
# !! NO output, due to .ToString() conversion
$hash | Select-String -Pattern 'foo'
# Out-String converts the output to a single multi-line string object
PS> $hash | Out-String | Select-String -Pattern 'foo'
Name Value
---- -----
Name foo
Category bar
# Out-String -Stream converts the output to a multiple single-line string objects
PS> $hash | Out-String -Stream | Select-String -Pattern 'foo'
Name fooOut-String -Stream'e yönlendirme, biçimlendirilmiş çıktıyı birden çok tek satırlı dize nesnesine dönüştürür. Bu, Select-String bir eşleşme bulduğunda yalnızca eşleşen satırın çıktısını vereceği anlamına gelir.
Parametreler
-AllMatches
Cmdlet'in metnin her satırında birden fazla eşleşme aradığını belirtir. Bu parametre olmadan, Select-String metnin her satırında yalnızca ilk eşleşmeyi bulur.
Select-String bir metin satırında birden fazla eşleşme bulduğunda, satır için yine de yalnızca bir MatchInfo nesnesi yayınlar, ancak Matches nesnenin özelliği tüm eşleşmeleri içerir.
Not
Bu parametre, SimpleMatch parametresiyle birlikte kullanıldığında yok sayılır. Tüm eşleşmeleri döndürmek istiyorsanız ve aradığınız kalıp düzenli ifade karakterleri içeriyorsa, SimpleMatch kullanmak yerine bu karakterlerden kaçmanız gerekir. Normal ifadelerden kaçış hakkında daha fazla bilgi için about_Regular_Expressions konusuna bakın.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
False
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-CaseSensitive
Cmdlet eşleşmelerinin büyük/küçük harfe duyarlı olduğunu belirtir. Varsayılan olarak eşleşmeler büyük/küçük harfe duyarlı değildir.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
False
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Context
Desenle eşleşen satırdan önceki ve sonraki belirtilen sayıda satırı yakalar.
Bu parametrenin değeri olarak bir sayı girerseniz bu sayı, maç öncesinde ve sonrasında yakalanan satır sayısını belirler. Değer olarak iki sayı girerseniz ilk sayı maç öncesi satır sayısını, ikinci sayı ise maç sonrası satır sayısını belirler. Örneğin, -Bağlam 2,3.
Varsayılan ekranda, eşleşen satırlar ekranın ilk sütununda dik açılı ayraç (>) (ASCII 62) ile gösterilir. İşaretsiz çizgiler bağlamdır.
Context parametresi, Select-String tarafından oluşturulan nesnelerin sayısını değiştirmez. Select-String her eşleşme için bir MatchInfo nesnesi oluşturur. Bağlam, nesnenin Bağlam özelliğinde bir dize dizisi olarak depolanır.
Bir Select-String komutunun çıktısı ardışık düzen üzerinden başka bir Select-String komutuna gönderildiğinde, alıcı komut yalnızca eşleşen satırdaki metni arar. Eşleşen satır, bağlam satırlarındaki metin değil, MatchInfo nesnesinin Line özelliğinin değeridir. Sonuç olarak, Context parametresi, alıcı Select-String komutunda geçerli değil.
Bağlam bir eşleşme içerdiğinde, her eşleşmenin MatchInfo nesnesi tüm bağlam satırlarını içerir ancak çakışan çizgiler ekranda yalnızca bir kez görünür.
- Tip :
Int32[]
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Culture
Belirtilen desenle eşleşecek bir kültür adını belirtir. Culture parametresi SimpleMatch parametresiyle birlikte kullanılmalıdır. Varsayılan davranış, geçerli PowerShell çalışma alanının (oturum) kültürünü kullanır.
Desteklenen tüm kültürlerin bir listesini almak için Get-Culture -ListAvailable komutunu kullanın.
Ayrıca bu parametre aşağıdaki bağımsız değişkenleri kabul eder:
- CurrentCulture, bu varsayılandır;
- Sıralı, yani dilsel olmayan ikili karşılaştırma;
- Değişmez, yani kültürden bağımsız karşılaştırmadır.
Select-String -Culture Ordinal -CaseSensitive -SimpleMatch komutuyla en hızlı ikili karşılaştırmayı elde edersiniz.
Kültür parametresi, mevcut kültürleri belirten bağımsız değişkenler listesinde gezinmek için sekme tamamlamayı kullanır. Mevcut tüm bağımsız değişkenleri listelemek için aşağıdaki komutu kullanın:
(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues.NET CultureInfo.Name özelliği hakkında daha fazla bilgi için bkz. CultureInfo.Name.
Kültür parametresi PowerShell 7'de kullanıma sunuldu.
- Tip :
String
- Konum:
Adlandırılmış
- Varsayılan değer:
Geçerli PowerShell oturumunun kültürü
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Encoding
Hedef dosyanın kodlama türünü belirtir. Varsayılan değer utf8NoBOM'dur.
Bu parametre için kabul edilebilir değerler aşağıdaki gibidir:
ascii: ASCII (7 bit) karakter kümesinin kodlamasını kullanır.ansi: Geçerli kültürün ANSI kod sayfası için kodlamayı kullanır. Bu seçenek PowerShell 7.4'e eklenmiştir.bigendianunicode: Big-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.bigendianutf32: Big-endian bayt sırasını kullanarak UTF-32 biçiminde kodlar.oem: MS-DOS ve konsol programları için varsayılan kodlamayı kullanır.unicode: Little-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.utf7: UTF-7 formatında kodlar.utf8: UTF-8 formatında kodlar.utf8BOM: Bayt Sırası İşareti (BOM) ile UTF-8 formatında kodlarutf8NoBOM: Bayt Sırası İşareti (BOM) olmadan UTF-8 biçiminde kodlarutf32: UTF-32 formatında kodlar.
PowerShell 6.2'den başlayarak, Kodlama parametresi ayrıca kayıtlı kod sayfalarının sayısal kimliklerine (-Encoding 1251 gibi) veya kayıtlı kod sayfalarının dize adlarına (-Encoding gibi) izin verir "windows-1251"). Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.
PowerShell 7,4'ten başlayarak, geçerli kültürün ANSI kod sayfasının sayısal kimliğini manuel olarak belirtmek zorunda kalmadan iletmek için Encoding parametresi için Ansi değerini kullanabilirsiniz.
Not
UTF-7*'nin kullanılması artık önerilmemektedir. PowerShell 7.1'den itibaren Encoding parametresi için utf7 belirtirseniz bir uyarı yazılır.
- Tip :
Kodlama
- Kabul edilen değerler:
ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
- Konum:
Adlandırılmış
- Varsayılan değer:
UTF8NoBOM
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Exclude
Belirtilen öğeleri hariç tutun. Bu parametrenin değeri Yol parametresini nitelendirir. *.txt gibi bir yol öğesi veya modeli girin. Joker karakterlere izin verilir.
- Tip :
String[]
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
True
-Include
Belirtilen öğeleri içerir. Bu parametrenin değeri Yol parametresini nitelendirir. *.txt gibi bir yol öğesi veya modeli girin. Joker karakterlere izin verilir.
- Tip :
String[]
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
True
-InputObject
Aranacak metni belirtir. Metni içeren bir değişken girin veya metni alan bir komut veya ifade yazın.
InputObject parametresini kullanmak, dizeleri ardışık düzende Select-String'e göndermekle aynı şey değildir.
Select-String cmdlet'ine birden fazla dize aktardığınızda, her dizede belirtilen metni arar ve arama metnini içeren her dizeyi döndürür.
Bir dize koleksiyonu göndermek için InputObject parametresini kullandığınızda, Select-String, koleksiyonu tek bir birleştirilmiş dize olarak ele alır. Select-String herhangi bir dizede aranan metni bulursa dizeleri bir birim olarak döndürür.
FileInfo nesneleri bir dosyanın yolu olarak değerlendirilir. Dosya yolları belirtildiğinde, Select-String nesnenin ToString() gösterimini değil, dosyanın içeriğini arar.
- Tip :
PSObject
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
True
- Boru hattı girişini kabul edin:
True
- Joker karakterleri kabul et:
False
-List
Her giriş dosyasından eşleşen metnin yalnızca ilk örneği döndürülür. Bu, normal ifadeyle eşleşen içeriğe sahip dosyaların listesini almanın en etkili yoludur.
Varsayılan olarak Select-String, bulduğu her eşleşme için bir MatchInfo nesnesi döndürür.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
False
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-LiteralPath
Aranacak dosyaların yolunu belirtir. LiteralPath parametresinin değeri tam olarak yazıldığı gibi kullanılır. Hiçbir karakter joker karakter olarak yorumlanmaz. Yol kaçış karakterleri içeriyorsa, onu tek tırnak işaretleri içine alın. Tek tırnak işaretleri PowerShell'e hiçbir karakteri kaçış dizisi olarak yorumlamamasını söyler. Daha fazla bilgi için bkz. about_Quoting_Rules.
- Tip :
String[]
- Takma adlar:
PSPath, LP
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
True
- Boru hattı girişini kabul edin:
True
- Joker karakterleri kabul et:
False
-NoEmphasis
Varsayılan olarak Select-String, Pattern parametresiyle aradığınız kalıpla eşleşen dizeyi vurgular. NoEmphasis parametresi vurgulamayı devre dışı bırakır.
Vurgu, PowerShell arka planınıza ve metin renklerinize göre negatif renkler kullanır. Örneğin, PowerShell renkleriniz beyaz metinli siyah bir arka plan ise. Vurgu, siyah metinli beyaz bir arka plandır.
Bu parametre PowerShell 7'de tanıtıldı.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
False
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-NotMatch
NotMatch parametresi, belirtilen kalıpla eşleşmeyen metni bulur.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
False
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Path
Aranacak dosyaların yolunu belirtir. Joker karakterlere izin verilir. Varsayılan konum yerel dizindir.
Dizindeki log1.txt, *.doc veya *.* gibi dosyaları belirtin. Yalnızca bir dizin belirtirseniz komut başarısız olur.
- Tip :
String[]
- Konum:
1
- Varsayılan değer:
Yerel dizin
- Gerekli:
True
- Boru hattı girişini kabul edin:
True
- Joker karakterleri kabul et:
True
-Pattern
Her satırda bulunacak metni belirtir. Desen değeri normal ifade olarak ele alınır.
Düzenli ifadeler hakkında bilgi edinmek için bkz. about_Regular_Expressions.
- Tip :
String[]
- Konum:
0
- Varsayılan değer:
None
- Gerekli:
True
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Quiet
Cmdlet'in MatchInfo nesnesi yerine basit bir yanıt döndürdüğünü belirtir. Desen bulunursa döndürülen değer $true veya desen bulunmazsa $null olur.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
False
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Raw
Cmdlet'in MatchInfo nesneleri yerine yalnızca eşleşen dizelerin çıktısını vermesine neden olur. Bu, Unix grep veya Windows findstr.exe komutlarına en çok benzeyen davranışla sonuçlanır.
Bu parametre PowerShell 7'de tanıtıldı.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
False
- Gerekli:
True
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-SimpleMatch
Cmdlet'in normal ifade eşleşmesi yerine basit bir eşleşme kullandığını belirtir. Basit bir eşleşmede Select-String, Pattern parametresindeki metni arar. Pattern parametresinin değerini normal ifade ifadesi olarak yorumlamaz.
Ayrıca, SimpleMatch kullanıldığında, döndürülen MatchInfo nesnesinin Matches özelliği boştur.
Not
Bu parametre AllMatches parametresiyle birlikte kullanıldığında AllMatches dikkate alınmaz.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
False
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
Girişler
PSObject
ToString() yöntemine sahip herhangi bir nesneyi bu cmdlet'e aktarabilirsiniz.
Çıkışlar
MatchInfo
Varsayılan olarak bu cmdlet, bulunan her eşleşme için bir MatchInfo nesnesi döndürür.
Boole
Sessiz parametresini kullandığınızda, bu cmdlet, modelin bulunup bulunmadığını belirten bir Boolean değeri döndürür.
Dize
Raw parametresini kullandığınızda bu cmdlet, kalıpla eşleşen bir dizi String nesnesi döndürür.
Notlar
PowerShell, Select-String için aşağıdaki takma adları içerir:
Tüm platformlar:
sls
Select-String, UNIX'teki grep'e veya Windows'taki findstr.exe'ye benzer.
Select-String cmdlet'inin sls takma adı PowerShell 3.0'da kullanılmaya başlandı.
Not
PowerShell Komutları için Onaylanmış Fiiller'e göre, Select-* cmdlet'leri için resmi takma ad öneki sl değil, sc'dir. Bu nedenle, Select-String için uygun takma ad sls değil, scs olmalıdır. Bu, bu kuralın bir istisnasıdır.
Nesneleri Select-String'e aktarırken:
- FileInfo nesneleri bir dosyanın yolu olarak değerlendirilir. Dosya yolları belirtildiğinde,
Select-StringnesneninToString()gösterimini değil, dosyanın içeriğini arar. - Aktarılan nesnenin
ToString()sonucu, PowerShell'in biçimlendirme sistemi tarafından üretilen zengin dize temsiliyle aynı değildir. Bu nedenle, öncelikle nesneleriOut-String'e yönlendirmeniz gerekebilir. Daha fazla bilgi için Örnek 10'a bakın.
Select-String'i kullanmak için Pattern parametresinin değeri olarak bulmak istediğiniz metni yazın. Aranacak metni belirtmek için aşağıdaki kriterleri kullanın:
- Metni tırnak içine alınan bir dizeye yazın ve ardından onu
Select-String'e yönlendirin. - Bir metin dizesini bir değişkende saklayın ve ardından değişkeni InputObject parametresinin değeri olarak belirtin.
- Metin dosyalarda saklanıyorsa dosyaların yolunu belirtmek için Yol parametresini kullanın.
Varsayılan olarak Select-String, Pattern parametresinin değerini normal ifade olarak yorumlar. Daha fazla bilgi için bkz. about_Regular_Expressions. Normal ifade eşleşmesini geçersiz kılmak için SimpleMatch parametresini kullanabilirsiniz. SimpleMatch parametresi, girişteki Pattern parametresinin değerinin örneklerini bulur.
Select-String'in varsayılan çıktısı, eşleşmeler hakkında ayrıntılı bilgi içeren bir MatchInfo nesnesidir. MatchInfo nesnelerinin Dosya adı ve Satır gibi özellikleri olduğundan, nesnedeki bilgiler dosyalarda metin ararken kullanışlıdır. Giriş dosyadan olmadığında bu parametrelerin değeri InputStream olur.
MatchInfo nesnesindeki bilgilere ihtiyacınız yoksa Sessiz parametresini kullanın. Sessiz parametresi, bir eşleşme bulup bulmadığını belirtmek için MatchInfo nesnesi yerine bir Boolean değeri (True veya False) döndürür.
Cümleleri eşleştirirken Select-String, sistem için ayarlanan geçerli kültürü kullanır. Geçerli kültürü bulmak için Get-Culture cmdlet'ini kullanın.
MatchInfo nesnesinin özelliklerini bulmak için aşağıdaki komutu yazın:
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *