Select-String
Dizelerde ve dosyalarda metin 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>]
Description
Select-String
cmdlet'i, giriş dizelerinde ve dosyalarda metin desenlerini aramak için normal ifade eşleştirme kullanır. Unix'te grep
veya Windows'da findstr.exe
benzer Select-String
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.
Select-String
satır başına birden çok eşleşme bulmaya, eşleşmeden önce ve sonra metin görüntülemeye veya eşleşme bulunup bulunmadığını gösteren bir Boole değeri (True veya False) görüntülemeye 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 desenle eşleşmeyen tüm metinleri görüntülemek için kullanılabilir.
Select-String
, Unicode metin dosyalarında arama yaparken olduğu gibi 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. Dosyada BOM yoksa, kodlamanın UTF8 olduğunu varsayar.
Örnekler
Örnek 1: Büyük/küçük harfe duyarlı eşleşme bulma
Bu örnek, işlem hattından Select-String
cmdlet'ine gönderilen metnin büyük/küçük harfe duyarlı eşleşmesini yapar.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
Hello ve HELLO metin dizeleri işlem hattını Select-String
cmdlet'ine gönderilir.
Select-String
Deseni parametresini kullanarak hello belirtir.
CaseSensitive parametresi, servis talebinin yalnızca büyük harf deseni ile 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 görüntüler.
Örnek 2: Metin dosyalarında eşleşmeleri bulma
Bu komut, geçerli dizindeki .txt
dosya adı uzantısına sahip tüm dosyaları arar. Çıkış, 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-Alias
Bu örnekte, Get-Alias
ve Get-Command
, geçerli dizinde Out-File
ve Command.txtolmak üzere iki metin dosyası oluşturmak için cmdlet'iyle birlikte kullanılır.
Select-String
, geçerli dizindeki tüm dosyaları dosya adı uzantısıyla aramak için yıldız işareti (*
) joker karakteriyle .txt
parametresini kullanır.
Deseni parametresi, get- eşleşecek metni belirtir.
Select-String
çıkışı PowerShell konsolunda görüntüler. Dosya adı ve satır numarası, Deseni parametresiyle eşleşen her içerik satırının önünde yer alır.
Örnek 3: Desen eşleşmesi bulma
Bu örnekte, belirtilen desenin eşleşmelerini bulmak için birden çok dosya aranır. Desende normal ifade niceleyicisi kullanılı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=210614
Select-String
cmdlet'i, Path ve Pattern iki parametre 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.
Deseni parametresi, her dosyadaki bir soru işaretiyle (?
) eşleşecek şekilde belirtir. Bir kaçış karakteri olarak ters eğik çizgi (\
) kullanılır ve soru işareti (?
) normal ifade niceleyicisi olduğundan gereklidir.
Select-String
çıkışı PowerShell konsolunda görüntüler. Dosya adı ve satır numarası, Deseni parametresiyle eşleşen her içerik satırının önünde yer alır.
Örnek 4: İşlevde Select-String kullanma
Bu örnek, PowerShell yardım dosyalarında desen aramak için bir işlev oluşturur. Bu örnekte işlev yalnızca PowerShell oturumunda bulunur. 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.
function
anahtar sözcüğü Search-Help
adını kullanır. İşleve deyim eklemeye başlamak için Enter tuşuna basın.
>>
isteminden her deyimi ekleyin ve örnekte gösterildiği gibi Enter basın. Kapatma köşeli ayracı eklendikten sonra bir PowerShell istemine geri dönersiniz.
işlevi iki komut içerir.
$PSHelp
değişkeni, PowerShell yardım dosyalarının yolunu depolar.
$PSHOME
, dizindeki her dosyasını belirten *.txt
alt dizinine sahip PowerShell yükleme dizinidir.
İşlevdeki Select-String
komutu, Yol ve Deseni parametrelerini kullanır.
Yolu parametresi, yolu almak için $PSHelp
değişkenini kullanır.
Deseni parametresi, arama ölçütü olarak About_ dizesini kullanır.
İşlevi çalıştırmak için Search-Help
yazın. İşlevin Select-String
komutu, çıkışı PowerShell konsolunda görüntüler.
Örnek 5: Windows olay günlüğünde dize arama
Bu örnek, Windows olay günlüğündeki bir dizeyi arar.
$_
değişkeni, işlem hattındaki 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ükten 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ından 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.
Deseni parametresi Başarısız dizesini belirtir ve $_.Message
içinde eşleşmeleri arar.
Select-String
çıkışı PowerShell konsolunda görüntüler.
Örnek 6: Alt dizinlerde dize bulma
Bu örnek, bir dizinde ve tüm alt dizinlerde belirli bir metin dizesi arar.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse |
Select-String -Pattern 'Microsoft' -CaseSensitive
Get-ChildItem
, C:\Windows\System32*.txtbelirtmek için Path parametresini kullanır.
Recurse parametresi alt dizinleri içerir. Nesneler Select-String
için işlem hattına gönderilir.
Select-String
Deseni parametresini kullanır ve Microsoft dizesini belirtir.
CaseSensitive parametresi, dizenin tam büyük/küçük harfle eşleşmesi için kullanılır.
Select-String
çıkışı PowerShell konsolunda görüntüler.
Not
İzinlerinize bağlı olarak, çıktıda Erişim reddedildi iletileri görebilirsiniz.
Örnek 7: Desenle eşleşmeyen dizeleri bulma
Bu örnekte, desenle eşleşmeyen veri satırlarının nasıl dışlandığı gösterilmektedir.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set' -NotMatch
Get-Command
cmdlet'i, geçerli dizinde Out-File
dosyasını oluşturmak için nesneleri işlem hattından gönderir.
Select-String
, Command.txt dosyasını belirtmek için Yol parametresini kullanır.
Deseni parametresi Get ve Set'ı arama deseni olarak belirtir.
NotMatch parametresi Get ve Set sonuçlarının dışında tutar.
Select-String
, PowerShell konsolunda Al veya Ayarlaiçermeyen çıkışı görüntüler.
Örnek 8: Eşleşmeden önceki ve sonraki satırları bulma
Bu örnekte, eşleşen desenden önceki ve sonraki satırların nasıl alınıp alınmayları gösterilmektedir.
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.Security
Get-Command
cmdlet'i, geçerli dizinde Out-File
dosyasını oluşturmak için nesneleri işlem hattından gönderir.
Select-String
, Command.txt dosyasını belirtmek için Yol parametresini kullanır.
Deseni parametresi, arama deseni olarak Get-Computer
belirtir.
Context parametresi, önce ve sonra olmak üzere iki değer kullanır ve çıkıştaki desen eşleşmelerini açılı ayraçla (>
) işaretler.
Bağlamı parametresi, ilk desen eşleşmeden önce iki satırı ve son desen eşleşmesinin ardından üç satır çıkışını alır.
Örnek 9: Tüm desen eşleşmelerini bulma
Bu örnekte, AllMatches parametresinin bir metin satırındaki her desen eşleşmesini nasıl bulduğu gösterilmektedir. Varsayılan olarak, Select-String
bir desenin yalnızca metin satırındaki ilk oluşumunu 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
9
Get-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 depolanır.
$A
değişkeni, işlem hattından Select-String
cmdlet'ine gönderilir.
Select-String
, her dosyada PowerShell dizesiaramak için Desen parametresini kullanır.
PowerShell komut satırından $A
değişken içeriği görüntülenir. PowerShell dizesinin iki oluşumunu içeren bir satır vardır.
$A.Matches
özelliği, her satırda PowerShell desenin ilk oluşumunu listeler.
$A.Matches.Length
özelliği, her satırda PowerShell desenin ilk oluşumunu sayar.
$B
değişkeni aynı Get-ChildItem
ve Select-String
cmdlet'leri kullanır, ancak AllMatches parametresini ekler.
AllMatches, her satırda PowerShell desenin her oluşumunu bulur.
$A
ve $B
değişkenlerinde depolanan nesneler aynıdır.
PowerShell $B.Matches.Length
desenin her geçtiği her satır için sayıldığından özelliği artar.
Örnek 10 - 'Out-String' kullanarak işlem hattı nesnelerini dizelere dönüştürme
Kanallı nesnenin ToString()
sonucu, PowerShell'in biçimlendirme sistemi tarafından üretilen zengin dize gösterimiyle aynı değildir. Bu nedenle, önce nesneleri Out-String
yöneltmelisiniz.
Out-String
için piping, biçimlendirilmiş çıkışı tek bir çok satırlı dize nesnesine dönüştürür. Bu, Select-String
bir eşleşme bulduğunda çok satırlı dizenin tamamının çıkışını yaptığı 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 foo
Out-String -Stream
için piping, biçimlendirilmiş çıkışı 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 çıkışını yaptığı anlamına gelir.
Parametreler
-AllMatches
Cmdlet'in her metin satırında birden fazla eşleşme aradığını gösterir. Bu parametre olmadan, Select-String
her metin satırında yalnızca ilk eşleşmeyi bulur.
Select-String
bir metin satırında birden fazla eşleşme bulduğunda, yine de satır için yalnızca bir MatchInfo nesnesi yayar, ancak nesnenin Eşleşmeleri özelliği tüm eşleşmeleri içerir.
Not
bu parametre, SimpleMatch parametresiyle birlikte kullanıldığında yoksayılır. Tüm eşleşmeleri döndürmek istiyorsanız ve aradığınız desen normal ifade karakterleri içeriyorsa, SimpleMatchkullanmak yerine bu karakterlerden kaçmalısınız. Normal ifadelerden kaçış hakkında daha fazla bilgi için bkz. about_Regular_Expressions.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-CaseSensitive
Cmdlet eşleşmelerinin büyük/küçük harfe duyarlı olduğunu gösterir. Varsayılan olarak, eşleşmeler büyük/küçük harfe duyarlı değildir.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Context
Desenle eşleşen satırdan önceki ve sonraki belirtilen satır sayısını yakalar.
Bu parametrenin değeri olarak bir sayı girerseniz, bu sayı eşleşmeden önce ve sonra yakalanan satır sayısını belirler. Değer olarak iki sayı girerseniz, ilk sayı eşleşmeden önceki satır sayısını, ikinci sayı ise eşleşmeden sonraki satır sayısını belirler. Örneğin, -Context 2,3
.
Varsayılan ekranda, eşleşmesi olan çizgiler, ekranın ilk sütununda dik açılı ayraç (>
) (ASCII 62) ile gösterilir. İşaretsiz çizgiler bağlamdır.
Bağlamı parametresi, Select-String
tarafından oluşturulan nesne sayısını değiştirmez.
Select-String
her eşleşme için bir MatchInfo nesnesi oluşturur. Bağlam, nesnesinin Context özelliğinde dize dizisi olarak depolanır.
bir Select-String
komutunun çıktısı işlem hattını başka bir Select-String
komutuna gönderildiğinde, alan komut yalnızca eşleşen satırdaki metni arar. Eşleşen çizgi, bağlam çizgilerindeki metin değil, MatchInfo nesnesinin Satır özelliğinin değeridir. Sonuç olarak, Bağlam parametresi alıcı Select-String
komutunda geçerli değildir.
Bağlam bir eşleşme içerdiğinde, her eşleşme için MatchInfo nesnesi tüm bağlam çizgilerini içerir, ancak örtüşen çizgiler ekranda yalnızca bir kez görünür.
Tür: | Int32[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Culture
Belirtilen desenle eşleşecek bir kültür adı belirtir. Culture parametresi, SimpleMatch parametresiyle 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 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, yani varsayılandır;
- Dilsel olmayan ikili karşılaştırma olan sıra;
- Sabittir, bu 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 edebilirsiniz.
Culture parametresi, kullanılabilir kültürleri belirten bağımsız değişkenler listesinde gezinmek için sekme tamamlamayı kullanır. Kullanılabilir 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.
Culture parametresi PowerShell 7'de tanıtıldı.
Tür: | String |
Position: | Named |
Default value: | Culture of the current PowerShell session |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Encoding
Hedef dosya için kodlama türünü belirtir. Varsayılan değer utf8NoBOM
.
Bu parametre için kabul edilebilir değerler aşağıdaki gibidir:
-
ascii
: ASCII (7 bit) karakter kümesi için kodlamayı kullanır. -
ansi
: Geçerli kültürün ANSI kod sayfasının kodlamasını kullanır. Bu seçenek PowerShell 7.4'e eklendi. -
bigendianunicode
: Büyük endian bayt sırasını kullanarak UTF-16 biçiminde kodlar. -
bigendianutf32
: Büyük 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 biçiminde kodlar. -
utf8
: UTF-8 biçiminde kodlar. -
utf8BOM
: Bayt Sırası İşareti (BOM) ile UTF-8 biçiminde kodlar -
utf8NoBOM
: Bayt Sırası İşareti (BOM) olmadan UTF-8 biçiminde kodlar -
utf32
: UTF-32 biçiminde kodlar.
PowerShell 6.2'den başlayarak, Kodlama parametresi, kayıtlı kod sayfalarının sayısal kimliklerine (-Encoding 1251
gibi) veya kayıtlı kod sayfalarının dize adlarına (-Encoding "windows-1251"
gibi) de izin verir. Daha fazla bilgi için Encoding.CodePageiçin .NET belgelerine bakın.
PowerShell 7.4'den başlayarak, Ansi
parametresinin değerini kullanarak geçerli kültürün ANSI kod sayfasının sayısal kimliğini el ile belirtmek zorunda kalmadan geçirebilirsiniz.
Not
UTF-7* artık kullanılması önerilmez. PowerShell 7.1'den itibaren, utf7
parametresi için belirtirseniz bir uyarı yazılır.
Tür: | Encoding |
Kabul edilen değerler: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Exclude
Belirtilen öğeleri dışla. Bu parametrenin değeri, Path parametresini niteler.
*.txt
gibi bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.
Tür: | String[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | True |
-Include
Belirtilen öğeleri içerir. Bu parametrenin değeri, Path parametresini niteler.
*.txt
gibi bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.
Tür: | String[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | 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 parametresinin kullanılması, işlem hattından Select-String
'e dize göndermekle aynı 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şik dize olarak değerlendirir.
Select-String
, herhangi bir dizedeki arama metnini bulursa dizeleri 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.
Tür: | PSObject |
Position: | Named |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-List
Her giriş dosyasından yalnızca eşleşen metnin ilk örneği döndürülür. Bu, normal ifadeyle eşleşen içeriği olan dosyaların listesini almanın en verimli yoludur.
varsayılan olarak, Select-String
bulduğu her eşleşme için bir MatchInfo nesnesi döndürür.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | 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 yorumlanmamıştır. Yol kaçış karakterleri içeriyorsa, tek tırnak içine alın. Tek tırnak işaretleri PowerShell'e hiçbir karakteri kaçış dizisi olarak yorumlamaması gerektiğini söyler. Daha fazla bilgi için bkz. about_Quoting_Rules.
Tür: | String[] |
Diğer adlar: | PSPath, LP |
Position: | Named |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-NoEmphasis
varsayılan olarak, Select-String
aradığınız desenle eşleşen dizeyi Desen parametresiyle vurgular.
NoEmphasis parametresi vurgulama özelliğini 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 metin içeren siyah bir arka plansa. Vurgu, siyah metin içeren beyaz bir arka plandır.
Bu parametre PowerShell 7'de kullanıma sunulmuştur.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-NotMatch
NotMatch parametresi, belirtilen desenle eşleşmeyen metni bulur.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Path
Aranacak dosyaların yolunu belirtir. Joker karakterlere izin verilir. Varsayılan konum yerel dizindir.
dizininde log1.txt
, *.doc
veya *.*
gibi dosyaları belirtin. Yalnızca bir dizin belirtirseniz, komut başarısız olur.
Tür: | String[] |
Position: | 1 |
Default value: | Local directory |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | True |
-Pattern
Her satırda bulunacak metni belirtir. Desen değeri normal bir ifade olarak değerlendirilir.
Normal ifadeler hakkında bilgi edinmek için bkz. about_Regular_Expressions.
Tür: | String[] |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Quiet
Cmdlet'in MatchInfo nesnesi yerine basit bir yanıt döndürdüğünü gösterir. Desen bulunursa döndürülen değer $true
veya desen bulunamazsa $null
.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Raw
Cmdlet'in MatchInfo nesneleri yerine yalnızca eşleşen dizeleri neden olur. Bu, Unix grep veya Windows findstr.exe komutlarına en benzeyen davranış sonuçlarıdır.
Bu parametre PowerShell 7'de kullanıma sunulmuştur.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-SimpleMatch
Cmdlet'in normal ifade eşleşmesi yerine basit bir eşleşme kullandığını gösterir. Basit bir eşleşmede, Select-String
Deseni parametresindeki metni arar.
Pattern parametresinin değerini normal ifade deyimi olarak yorumlamaz.
Ayrıca, SimpleMatch kullanıldığında, döndürülen MatchInfo nesnesinin Eşleşme özelliği boş olur.
Not
Bu parametre AllMatches parametresiyle kullanıldığında, AllMatches yoksayılır.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
ToString()
yöntemi olan herhangi bir nesneyi bu cmdlet'e aktarabilirsiniz.
Çıkışlar
Varsayılan olarak, bu cmdlet bulunan her eşleşme için bir MatchInfo nesnesi döndürür.
Quiet parametresini kullandığınızda, bu cmdlet desenin bulunup bulunmadığını gösteren bir Boole değeri döndürür.
Raw parametresini kullandığınızda, bu cmdlet desenle eşleşen bir dizi String nesnesi döndürür.
Notlar
PowerShell, Select-String
için aşağıdaki diğer adları içerir:
- Tüm platformlar:
sls
Select-String
, Unix'teki grep
veya Windows'daki findstr.exe
benzerdir.
sls
cmdlet'inin Select-String
diğer adı PowerShell 3.0'da kullanıma sunulmuştur.
Not
Onaylanan PowerShell Komutları Fiillerine göre, Select-*
cmdlet'ler için resmi diğer ad ön eki sc
değil sl
. Bu nedenle, Select-String
için uygun diğer ad scs
değil sls
olmalıdır. Bu, bu kural için bir özel durumdur.
Nesneleri Select-String
için piping yaparken:
-
FileInfo nesneleri bir dosyanın yolu olarak değerlendirilir. Dosya yolları belirtildiğinde,
Select-String
nesneninToString()
gösterimini değil dosyanın içeriğini arar. - Kanallı nesnenin
ToString()
sonucu, PowerShell'in biçimlendirme sistemi tarafından üretilen zengin dize gösterimiyle aynı değildir. Bu nedenle, önce nesneleriOut-String
yöneltmelisiniz. Daha fazla bilgi için bkz. Örnek 10.
Select-String
kullanmak için, bulmak istediğiniz metni Desen parametresinin değeri olarak yazın. Aranacak metni belirtmek için aşağıdaki ölçütleri kullanın:
- Metni tırnak içine alınmış bir dizeye yazın ve
Select-String
'e aktarın. - Bir metin dizesini bir değişkende depolayın ve InputObject parametresinin değeri olarak değişkeni belirtin.
- Metin dosyalarda depolanıyorsa, dosyaların yolunu belirtmek için Yol parametresini kullanın.
varsayılan olarak, Select-String
Deseni parametresinin değerini normal ifade olarak yorumlar. Daha fazla bilgi için bkz. about_Regular_Expressions. Normal ifade eşleştirmesini geçersiz kılmak için SimpleMatch parametresini kullanabilirsiniz.
SimpleMatch parametresi, girişteki Deseni parametresinin değerinin örneklerini bulur.
Select-String
varsayılan çıkışı, eşleşmeler hakkında ayrıntılı bilgiler içeren bir MatchInfo nesnesidir.
MatchInfo nesneleri DosyaAdı ve Satırgibi özelliklere sahip olduğundan, nesnedeki bilgiler dosyalarda metin ararken kullanışlıdır. Giriş dosyasından değilse, bu parametrelerin değeri InputStream olur.
MatchInfo nesnesindeki bilgilere ihtiyacınız yoksa Sessiz parametresini kullanın. Quiet parametresi, MatchInfo nesnesi yerine bir eşleşme bulup bulmadığını belirten bir Boole değeri (True veya False) döndürür.
tümcecikleri 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 *