Select-String

Dizelerde ve dosyalarda metin bulur.

Syntax

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

Cmdlet, Select-String giriş dizelerinde ve dosyalarda metin desenlerini aramak için normal ifade eşleştirmesi kullanır. UNIX veya findstr.exe Windows'da benzeri grep kullanabilirsinizSelect-String.

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 çok eşleşme bulmaya, eşleşmeden önce ve sonra metin görüntülemeye veya eşleşme bulunup bulunmadığını belirten bir Boole değeri (True veya False) görüntülemeye yönlendirebilirsiniz Select-String .

Select-String her giriş dosyasındaki tüm metin eşleşmelerini görüntüleyebilir veya ilk eşleşmeden sonra durabilir. Select-String belirtilen desenle eşleşmeyen tüm metinleri görüntülemek için kullanılabilir.

Unicode metin dosyalarında arama yaparken olduğu gibi belirli bir karakter kodlaması bekleneceğini de belirtebilirsiniz Select-String . Select-String , dosyanın kodlama biçimini algılamak için bayt-sipariş 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 cmdlet'e gönderilen metnin büyük/küçük harfe duyarlı eşleşmesini Select-String yapar.

'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch

Hello ve HELLO metin dizeleri, işlem hattı cmdlet'ine Select-String gönderilir. Select-StringHELLO belirtmek için Pattern parametresini kullanır. CaseSensitive parametresi, servis talebinin yalnızca büyük/küçü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 cmdlet'iyle birlikte Out-File geçerli dizinde Alias.txt ve Command.txt olmak üzere iki metin dosyası oluşturmak için kullanılır.

Select-String, geçerli dizindeki tüm dosyaları dosya adı uzantısıyla .txtaramak için yıldız işareti (*) joker karakteriyle Path parametresini kullanır. Pattern parametresi Get- ile eşleşecek metni belirtir. Select-String çıkışı PowerShell konsolunda görüntüler. Dosya adı ve satır numarası, Pattern parametresiyle eşleşme içeren 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

cmdlet'i Select-String Path ve Pattern adlı iki parametre kullanır. Path parametresi, PowerShell dizinini belirten değişkeni $PSHOME kullanır. Yolun geri kalanı en-US alt dizinini içerir ve dizindeki her *.txt dosyayı belirtir. Pattern parametresi, her dosyadaki bir soru işaretiyle (?) eşleşecek şekilde belirtir. Ters eğik çizgi (\), kaçış karakteri olarak 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ı, Pattern parametresiyle eşleşme içeren 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 komutu adını Search-Helpkullanır. İşleve deyim eklemeye başlamak için Enter tuşuna basın. İstemden >> her deyimi ekleyin ve örnekte gösterildiği gibi Enter tuşuna basın. Kapatma köşeli ayracı eklendikten sonra bir PowerShell istemine geri dönersiniz.

işlevi iki komut içerir. değişkeni, $PSHelp PowerShell yardım dosyalarının yolunu depolar. $PSHOME, dizindeki her *.txt dosyayı belirten en-US alt dizinine sahip PowerShell yükleme dizinidir.

Select-String İşlevdeki komut Path ve Pattern parametrelerini kullanır. Path parametresi, yolu almak için değişkenini kullanır$PSHelp. Pattern parametresi, arama ölçütü olarak About_ dizesini kullanır.

İşlevi çalıştırmak için yazın Search-Help. İş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'

Cmdlet, Get-WinEvent 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 adlı $Eventsdeğişkende depolanır.

değişkeni $Events işlem hattına cmdlet'ine Select-String gönderilir. Select-StringInputObject parametresini kullanır. $_ değişkeni geçerli nesneyi temsil eder ve message olayın bir özelliğidir. Pattern parametresi Failed dizesini oluşturur ve içinde $_.messageeş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*.txt belirtmek için Path parametresini kullanır. Recurse parametresi alt dizinleri içerir. Nesneler işlem hattına Select-Stringgönderilir.

Select-StringPattern parametresini kullanır ve Microsoft dizesini belirtir. CaseSensitive parametresi, dizenin tam büyük/küçük harflerini eşleştirmek için kullanılır. Select-String çıkışı PowerShell konsolunda görüntüler.

Not

İzinlerinize bağlı olarak, çıkışta 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

Cmdlet, Get-Command geçerli dizinde Command.txt dosyasını oluşturmak için işlem hattına Out-File nesneleri gönderir. Select-StringCommand.txt dosyasını belirtmek için Path parametresini kullanır. Pattern parametresi, arama deseni olarak Get ve Set değerlerini belirtir. NotMatch parametresi Get ve Set değerlerini sonuçlardan dışlar. Select-String PowerShell konsolunda Get veya Set iç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

Cmdlet, Get-Command geçerli dizinde Command.txt dosyasını oluşturmak için işlem hattına Out-File nesneleri gönderir. Select-StringCommand.txt dosyasını belirtmek için Path parametresini kullanır. Pattern parametresi, arama deseni olarak belirtirGet-Computer. Context parametresi, önce ve sonra olmak üzere iki değer kullanır ve çıkıştaki desen eşleşmelerini köşeli ayraçla (> ) işaretler. Context parametresi, ilk desen eşleşmeden önceki iki satırı ve son desen eşleşmesinin ardından üç satırın çı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, cmdlet'iyle birlikte Get-Member 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

cmdlet'i Get-ChildItem Path parametresini kullanır. Path parametresi, PowerShell dizinini belirten değişkeni $PSHOME kullanır. Yolun geri kalanı en-US alt dizinini içerir ve dizindeki her *.txt dosyayı belirtir. Get-ChildItem Nesneler değişkeninde $A depolanır. değişkeni $A işlem hattına cmdlet'ine Select-String gönderilir. Select-StringHer dosyada PowerShell dizesi aramak için Pattern parametresini kullanır.

PowerShell komut satırında değişken $A içeriği görüntülenir. PowerShell dizesinin iki oluşumunu içeren bir satır vardır.

özelliği, $A.Matches her satırda PowerShell deseninin ilk oluşumunu listeler.

özelliği, $A.Matches.Length her satırda PowerShell deseninin 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 deseninin her oluşumunu bulur. ve $B değişkenlerinde $A depolanan nesneler aynıdır.

$B.Matches.Length Her satır için PowerShell deseninin her oluşumu sayıldığından özellik artar.

Örnek 10 - 'Out-String' kullanarak işlem hattı nesnelerini dizelere dönüştürme

Kanallı ToString() nesnenin sonucu, PowerShell'in biçimlendirme sistemi tarafından üretilen zengin dize gösterimiyle aynı değildir. Bu nedenle, önce nesneleri kanala Out-String göndermeniz gerekebilir.

piping, Out-String 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

piping, Out-String -Stream 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.

Metin Select-String satırında birden fazla eşleşme bulduğunda, yine de satır için tek bir MatchInfo nesnesi yayar, ancak nesnenin Matches özelliği tüm eşleşmeleri içerir.

Not

SimpleMatch parametresiyle birlikte kullanıldığında bu parametre yoksayılır. Tüm eşleşmeleri döndürmek istiyorsanız ve aradığınız desen normal ifade karakterleri içeriyorsa, SimpleMatch kullanmak yerine bu karakterlerden kaçmalısınız. Normal ifadelerden kaçış hakkında daha fazla bilgi için bkz . about_Regular_Expressions .

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Context parametresi tarafından Select-Stringoluş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 komutun çıktısı işlem hattı başka bir Select-StringSelect-String komuta gönderildiğinde, alan komut yalnızca eşleşen satırdaki metni arar. Eşleşen satır, bağlam çizgilerindeki metin değil MatchInfo nesnesinin Line özelliğinin değeridir. Sonuç olarak, Context parametresi alma 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.

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 komutunu kullanın Get-Culture -ListAvailable .

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.

komutuyla Select-String -Culture Ordinal -CaseSensitive -SimpleMatch en hızlı ikili karşılaştırmayı alırsınız.

Culture parametresi, kullanılabilir kültürleri belirten bağımsız değişkenler listesinde gezinmek için sekme tamamlama 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 kullanıma sunulmuştur.

Type:String
Position:Named
Default value:Culture of the current PowerShell session
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

Hedef dosya için kodlama türünü belirtir. Varsayılan değer şudur: 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.
  • 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 Sipariş İş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 (gibi-Encoding 1251) sayısal kimliklerine veya kayıtlı kod sayfalarının dize adlarına da (gibi-Encoding "windows-1251") izin verir. Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.

Not

UTF-7* artık kullanılması önerilmez. PowerShell 7.1'den itibaren Kodlama parametresini belirtirseniz utf7 bir uyarı yazılır.

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Belirtilen öğeleri dışla. Bu parametrenin değeri Path parametresini niteler. gibi *.txtbir yol öğesi veya deseni girin. Joker karakterlere izin verilir.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Include

Belirtilen öğeleri içerir. Bu parametrenin değeri Path parametresini niteler. gibi *.txtbir yol öğesi veya deseni girin. Joker karakterlere izin verilir.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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, işlem hattının Select-Stringaşağısına dize göndermekle aynı değildir.

Cmdlet'ine Select-String 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 gösterimini değil ToString() , dosyanın içeriğini arar.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoEmphasis

Varsayılan olarak, Select-String Desen parametresiyle aradığınız desenle eşleşen dizeyi 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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NotMatch

NotMatch parametresi, belirtilen desenle eşleşmeyen metni bulur.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Aranacak dosyaların yolunu belirtir. Joker karakterlere izin verilir. Varsayılan konum yerel dizindir.

Dizininde , *.docveya *.*gibi log1.txtdosyaları belirtin. Yalnızca bir dizin belirtirseniz, komut başarısız olur.

Type:String[]
Position:1
Default value:Local directory
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Quiet

Cmdlet'in MatchInfo nesnesi yerine bir Boole değeri (True veya False) döndürdüğünü gösterir. Desen bulunursa değer True olur; aksi takdirde değer False'tur.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Raw

Cmdlet'in MatchInfo nesneleri yerine yalnızca eşleşen dizeleri çıktısına 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.

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters: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 Pattern parametresindeki metin için girişte aramalar. Pattern parametresinin değerini normal ifade deyimi olarak yorumlamaz.

Ayrıca SimpleMatch kullanıldığında, döndürülen MatchInfo nesnesinin Matches özelliği boş olur.

Not

Bu parametre AllMatches parametresiyle kullanıldığında, AllMatches yok sayılır.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Girişler

PSObject

Yöntemi olan herhangi bir ToString() 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.

Boolean

Quiet parametresini kullandığınızda, bu cmdlet desenin bulunup bulunmadığını belirten bir Boole değeri döndürür.

String

Raw parametresini kullandığınızda, bu cmdlet desenle eşleşen bir Dize nesneleri kümesi döndürür.

Notlar

PowerShell için aşağıdaki diğer adları Select-Stringiçerir:

  • Tüm platformlar:
    • sls

Select-String, UNIX veya findstr.exe Windows'takine grep benzer.

sls Cmdlet'in Select-String diğer adı PowerShell 3.0'da kullanıma sunulmuştur.

Not

PowerShell Komutları için Onaylı Fiiller'e göre, cmdlet'ler sciçin Select-* resmi diğer ad ön eki değildirsl. Bu nedenle, için Select-String uygun diğer ad , değil slsolmalıdırscs. Bu, bu kural için bir özel durumdur.

Nesneleri ' ye Select-Stringaktarırken:

  • FileInfo nesneleri bir dosyanın yolu olarak değerlendirilir. Dosya yolları belirtildiğinde, Select-String nesnenin gösterimini değil ToString() , dosyanın içeriğini arar.
  • Kanallı ToString() nesnenin sonucu, PowerShell'in biçimlendirme sistemi tarafından üretilen zengin dize gösterimiyle aynı değildir. Bu nedenle, önce nesneleri kanala Out-String göndermeniz gerekebilir. Daha fazla bilgi için bkz. Örnek 10.

kullanmak Select-Stringiçin, Desen parametresinin değeri olarak bulmak istediğiniz metni yazın. Aranacak metni belirtmek için aşağıdaki ölçütleri kullanın:

  • Metni tırnak içinde bir dizeye yazın ve sonra öğesine Select-Stringaktarın.
  • Bir metin dizesini bir değişkende depolayın ve değişkeni InputObject parametresinin değeri olarak belirtin.
  • Metin dosyalarda depolanıyorsa, dosyaların yolunu belirtmek için Path 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ştirmesini geçersiz kılmak için SimpleMatch parametresini kullanabilirsiniz. SimpleMatch parametresi, girişteki Pattern parametresinin değerinin örneklerini bulur.

varsayılan çıkışı Select-String , eşleşmeler hakkında ayrıntılı bilgiler içeren bir MatchInfo nesnesidir. MatchInfo nesnelerinin Dosya adı ve Çizgi gibi özellikleri 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 Quiet parametresini kullanın. Quiet parametresi, MatchInfo nesnesi yerine eşleşme bulup bulmadığını belirtmek için 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 cmdlet'ini Get-Culture 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 *