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ştirmeyi 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ını ararken olduğu gibi belirli bir karakter kodlaması beklenmesi gerektiğ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ına cmdlet'ine Select-String
gönderilir.
Select-String
HELLO belirtmek için Pattern parametresini kullanır. 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 dosya adı uzantısına .txt
sahip tüm dosyaları arar. Çıkış, belirtilen dizeyi içeren dosyalarda 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 ve Get-Alias
Get-Command
cmdlet'iyle birlikte Out-File
kullanılarak geçerli dizinde Alias.txt ve Command.txtolmak üzere iki metin dosyası oluşturulur.
Select-String
, geçerli dizindeki tüm dosyaları dosya adı uzantısıyla .txt
aramak 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ından öncedir.
Örnek 3: Desen eşleşmesi bulma
Bu örnekte, belirtilen desene yönelik eşleşmeleri bulmak için birden çok dosya aranır. Desen normal ifade niceleyicisi 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=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ından öncedir.
Ö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-Help
kullanır. İşleve deyim eklemeye başlamak için Enter tuşuna basın. komut isteminden >>
her deyimi ekleyin ve örnekte gösterildiği gibi Enter tuşuna basın. Köşeli ayraç eklendikten sonra bir PowerShell istemine 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ı $Events
değişkende depolanır.
$Events
değişkeni işlem hattına cmdlet'ine Select-String
gönderilir. Select-String
InputObject 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 $_.message
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 dizesini arar.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse | Select-String -Pattern 'Microsoft' -CaseSensitive
Get-ChildItem
Path parametresini kullanarak C:\Windows\System32*.txtbelirtir. Recurse parametresi alt dizinleri içerir. Nesneler işlem hattına Select-String
gönderilir.
Select-String
Pattern 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ı dışlama 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ının Out-File
aşağısına nesneleri gönderir. Select-String
Command.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şme öncesi ve sonrası satırları bulma
Bu örnekte, eşleşen desenden önceki ve sonraki satırların nasıl alınıp 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ının Out-File
aşağısına nesneleri gönderir. Select-String
Command.txt dosyasını belirtmek için Path parametresini kullanır. Pattern parametresi, arama deseni olarak belirtirGet-Computer
. Context parametresi, önce ve sonra 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 ö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, cmdlet'iyle bulunan Get-Member
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. $A
değişkeni işlem hattına cmdlet'ine Select-String
gönderilir. Select-String
Her 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 özelliği 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, nesneleri Out-String
önce öğesine yöneltmelisiniz.
piping, Out-String
biçimlendirilmiş çıkışı tek bir çok satırlı dize nesnesine dönüştürür. Bu, Select-String
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.
Bir Select-String
metin satırında birden fazla eşleşme bulduğunda, satır için yine de 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çış karakteri çıkarmanız gerekir. 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 önce ve sonra belirtilen sayıda satırı 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 sağ açılı ayraç (>
) (ASCII 62) ile gösterilir. İşaretsiz çizgiler bağlamdır.
Context parametresi tarafından Select-String
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 komutun çıkışı işlem hattı başka bir Select-String
Select-String
komuta gönderildiğinde, alan 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 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, varsayılan değerdir;
- Sıralı, bu dilsel olmayan ikili karşılaştırmadır;
- 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ı 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 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. utf8NoBOM
varsayılan değerdir.
Bu parametre için kabul edilebilir değerler şunlardır:
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 Sipariş İşareti (BOM) ile UTF-8 biçiminde kodlarutf8NoBOM
: Bayt Sırası İşareti (BOM) olmadan UTF-8 biçiminde kodlarutf32
: 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 (örneğin -Encoding "windows-1251"
) izin verir. Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.
Not
UTF-7* uygulamasının 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 *.txt
bir 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 *.txt
bir 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 aşağısına dize göndermekle Select-String
aynı değildir.
Cmdlet'ine Select-String
birden fazla dize gönderdiğinizde, 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 vurguyu 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.
Dizindeki , *.doc
veya *.*
gibi log1.txt
dosyaları 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 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 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şi arar. 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
Yöntemi olan herhangi bir ToString()
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ı belirten 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, için Select-String
aşağıdaki diğer adları içerir:
- Tüm platformlar:
sls
Select-String
, UNIX veya findstr.exe
Windows'dakine 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 için Select-*
resmi diğer ad ön eki değildirsc
sl
. Bu nedenle, için Select-String
uygun diğer ad değil sls
olmalıdırscs
. Bu, bu kural için bir özel durumdur.
Nesneleri ' ye Select-String
aktarırken:
- FileInfo nesneleri bir dosyanın yolu olarak değerlendirilir. Dosya yolları belirtildiğinde,
Select-String
nesnenin gösterimini değilToString()
, 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, nesneleriOut-String
önce öğesine yöneltmelisiniz. Daha fazla bilgi için bkz. Örnek 10.
kullanmak Select-String
için, bulmak istediğiniz metni Pattern 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 içine aktarın
Select-String
. - Bir metin dizesini bir değişkende depolayın ve ardından 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 Pattern Select-String
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 çıktısı Select-String
, 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, dosyalarda metin ararken nesnedeki bilgiler yararlı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 *
İlişkili Bağlantılar
PowerShell
A cross-platform task automation solution made up of a command-line shell and a scripting language.
Geri Bildirim
Gönderin ve geri bildirimi görüntüleyin