Select-String
Menemukan teks dalam string dan file.
Sintaks
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>]
Deskripsi
Select-String
Cmdlet menggunakan pencocokan ekspresi reguler untuk mencari pola teks dalam string input dan file. Anda dapat menggunakan Select-String
yang mirip grep
dengan di UNIX atau findstr.exe
di Windows.
Select-String
didasarkan pada baris teks. Secara default, Select-String
menemukan kecocokan pertama di setiap baris dan, untuk setiap kecocokan, itu menampilkan nama file, nomor baris, dan semua teks dalam baris yang berisi kecocokan. Anda dapat mengarahkan Select-String
untuk menemukan beberapa kecocokan per baris, menampilkan teks sebelum dan sesudah kecocokan, atau menampilkan nilai Boolean (Benar atau Salah) yang menunjukkan apakah kecocokan ditemukan.
Select-String
dapat menampilkan semua teks yang cocok atau berhenti setelah kecocokan pertama di setiap file input.
Select-String
dapat digunakan untuk menampilkan semua teks yang tidak cocok dengan pola yang ditentukan.
Anda juga dapat menentukan yang Select-String
seharusnya mengharapkan pengodean karakter tertentu, seperti saat Anda mencari file teks Unicode. Select-String
menggunakan byte-order-mark (BOM) untuk mendeteksi format pengodean file. Jika file tidak memiliki BOM, diasumsikan pengodeannya adalah UTF8.
Contoh
Contoh 1: Temukan kecocokan peka huruf besar/kecil
Contoh ini melakukan kecocokan peka huruf besar/kecil dari teks yang dikirim ke alur ke Select-String
cmdlet.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
String teks Hello dan HELLO dikirimkan alur ke Select-String
cmdlet.
Select-String
menggunakan parameter Pola untuk menentukan HELLO. Parameter CaseSensitive menentukan bahwa kasus hanya harus cocok dengan pola huruf besar. SimpleMatch adalah parameter opsional dan menentukan bahwa string dalam pola tidak ditafsirkan sebagai ekspresi reguler.
Select-String
menampilkan HELLO di konsol PowerShell.
Contoh 2: Menemukan kecocokan dalam file teks
Perintah ini mencari semua file dengan .txt
ekstensi nama file di direktori saat ini. Output menampilkan baris dalam file-file yang menyertakan string yang ditentukan.
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
Dalam contoh ini, Get-Alias
dan Get-Command
digunakan dengan Out-File
cmdlet untuk membuat dua file teks di direktori saat ini, Alias.txt dan Command.txt.
Select-String
menggunakan parameter Jalur dengan kartubebas tanda bintang (*
) untuk mencari semua file di direktori saat ini dengan ekstensi .txt
nama file . Parameter Pola menentukan teks yang cocok dengan Get-. Select-String
menampilkan output di konsol PowerShell. Nama file dan nomor baris mendahului setiap baris konten yang berisi kecocokan untuk parameter Pola .
Contoh 3: Menemukan kecocokan pola
Dalam contoh ini, beberapa file dicari untuk menemukan kecocokan untuk pola yang ditentukan. Pola menggunakan kuantifier ekspresi reguler. Untuk informasi selengkapnya, lihat 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 menggunakan dua parameter, Jalur dan Pola. Parameter Jalur menggunakan variabel $PSHOME
yang menentukan direktori PowerShell. Sisa jalur mencakup subdirektori en-US dan menentukan setiap *.txt
file dalam direktori. Parameter Pola menentukan untuk mencocokkan tanda tanya (?
) di setiap file. Garis miring terbalik (\
) digunakan sebagai karakter escape dan diperlukan karena tanda tanya (?
) adalah kuantifier ekspresi reguler. Select-String
menampilkan output di konsol PowerShell. Nama file dan nomor baris mendahului setiap baris konten yang berisi kecocokan untuk parameter Pola .
Contoh 4: Menggunakan Select-String dalam fungsi
Contoh ini membuat fungsi untuk mencari pola di file bantuan PowerShell. Untuk contoh ini, fungsi hanya ada di sesi PowerShell. Saat sesi PowerShell ditutup, fungsi akan dihapus. Untuk informasi selengkapnya, lihat 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
Fungsi ini dibuat pada baris perintah PowerShell. Perintah Function
menggunakan nama Search-Help
. Tekan Enter untuk mulai menambahkan pernyataan ke fungsi. Dari >>
perintah, tambahkan setiap pernyataan dan tekan Enter seperti yang ditunjukkan dalam contoh. Setelah tanda kurung siku penutup ditambahkan, Anda akan dikembalikan ke perintah PowerShell.
Fungsi ini berisi dua perintah. Variabel $PSHelp
menyimpan jalur ke file bantuan PowerShell. $PSHOME
adalah direktori penginstalan PowerShell dengan subdirektori en-US yang menentukan setiap *.txt
file dalam direktori.
Select-String
Perintah dalam fungsi menggunakan parameter Jalur dan Pola. Parameter Jalur menggunakan $PSHelp
variabel untuk mendapatkan jalur. Parameter Pola menggunakan string About_ sebagai kriteria pencarian.
Untuk menjalankan fungsi, ketik Search-Help
. Perintah fungsi Select-String
menampilkan output di konsol PowerShell.
Contoh 5: Mencari string di log peristiwa Windows
Contoh ini mencari string di log peristiwa Windows. Variabel $_
mewakili objek saat ini dalam alur. Untuk informasi selengkapnya, lihat about_Automatic_Variables.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'
Get-WinEvent
Cmdlet menggunakan parameter LogName untuk menentukan log Aplikasi. Parameter MaxEvents mendapatkan 50 peristiwa terbaru dari log. Konten log disimpan dalam variabel bernama $Events
.
Variabel $Events
dikirimkan alur ke Select-String
cmdlet. Select-String
menggunakan parameter InputObject. Variabel $_
mewakili objek saat ini dan message
merupakan properti peristiwa. Parameter Pola menentukan string Gagal dan mencari kecocokan di $_.message
. Select-String
menampilkan output di konsol PowerShell.
Contoh 6: Menemukan string di subdirektori
Contoh ini mencari direktori dan semua subdirektorinya untuk string teks tertentu.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse |
Select-String -Pattern 'Microsoft' -CaseSensitive
Get-ChildItem
menggunakan parameter Jalur untuk menentukan C:\Windows\System32*.txt. Parameter Recurse mencakup subdirektori. Objek dikirim ke alur ke Select-String
.
Select-String
menggunakan parameter Pola dan menentukan string Microsoft. Parameter CaseSensitive digunakan untuk mencocokkan kasus string yang tepat. Select-String
menampilkan output di konsol PowerShell.
Catatan
Bergantung pada izin Anda, Anda mungkin melihat Pesan akses ditolak dalam output.
Contoh 7: Temukan string yang tidak cocok dengan pola
Contoh ini menunjukkan cara mengecualikan baris data yang tidak cocok dengan pola.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set' -NotMatch
Get-Command
Cmdlet mengirim objek ke bawah alur ke Out-File
untuk membuat file Command.txt di direktori saat ini. Select-String
menggunakan parameter Jalur untuk menentukan file Command.txt. Parameter Pola menentukan Dapatkan dan Atur sebagai pola pencarian. Parameter NotMatch mengecualikan Dapatkan dan Atur dari hasil.
Select-String
menampilkan output di konsol PowerShell yang tidak menyertakan Dapatkan atau Atur.
Contoh 8: Menemukan baris sebelum dan sesudah kecocokan
Contoh ini menunjukkan cara mendapatkan baris sebelum dan sesudah pola yang cocok.
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 mengirim objek ke bawah alur ke Out-File
untuk membuat file Command.txt di direktori saat ini. Select-String
menggunakan parameter Jalur untuk menentukan file Command.txt. Parameter Pola menentukan Get-Computer
sebagai pola pencarian. Parameter Konteks menggunakan dua nilai, sebelum dan sesudah, dan menandai kecocokan pola dalam output dengan tanda kurung sudut (>
). Parameter Konteks menghasilkan dua baris sebelum kecocokan pola pertama dan tiga baris setelah kecocokan pola terakhir.
Contoh 9: Temukan semua kecocokan pola
Contoh ini menunjukkan bagaimana parameter AllMatches menemukan kecocokan setiap pola dalam baris teks. Secara default, Select-String
hanya menemukan kemunculan pertama pola dalam baris teks. Contoh ini menggunakan properti objek yang ditemukan dengan Get-Member
cmdlet.
$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 menggunakan parameter Jalur. Parameter Jalur menggunakan variabel $PSHOME
yang menentukan direktori PowerShell. Sisa jalur mencakup subdirektori en-US dan menentukan setiap *.txt
file dalam direktori. Objek Get-ChildItem
disimpan dalam $A
variabel . Variabel $A
dikirimkan alur ke Select-String
cmdlet. Select-String
menggunakan parameter Pola untuk mencari setiap file untuk string PowerShell.
Dari baris perintah PowerShell, $A
konten variabel ditampilkan. Ada baris yang berisi dua kemunculan string PowerShell.
Properti $A.Matches
mencantumkan kemunculan pertama pola PowerShell pada setiap baris.
Properti $A.Matches.Length
menghitung kemunculan pertama pola PowerShell pada setiap baris.
Variabel $B
menggunakan cmdlet dan Select-String
yang samaGet-ChildItem
, tetapi menambahkan parameter AllMatches. AllMatches menemukan setiap kemunculan pola PowerShell pada setiap baris. Objek yang disimpan dalam $A
variabel dan $B
identik.
Properti $B.Matches.Length
meningkat karena untuk setiap baris, setiap kemunculan pola PowerShell dihitung.
Contoh 10 - Mengonversi objek alur menjadi string menggunakan 'Out-String'
Hasil ToString()
dari objek yang disalurkan bukanlah representasi string kaya yang sama yang dihasilkan oleh sistem pemformatan PowerShell. Jadi, Anda mungkin perlu menyalurkan objek terlebih Out-String
dahulu.
Piping untuk Out-String
mengonversi output yang diformat menjadi satu objek string multibaris. Ini berarti bahwa ketika Select-String
menemukan kecocokan, ia menghasilkan seluruh string multibaris.
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 untuk Out-String -Stream
mengonversi output yang diformat menjadi beberapa objek string baris tunggal. Ini berarti bahwa ketika Select-String
menemukan kecocokan, itu hanya menghasilkan baris yang cocok.
Parameter
-AllMatches
Menunjukkan bahwa cmdlet mencari lebih dari satu kecocokan di setiap baris teks. Tanpa parameter ini, Select-String
hanya menemukan kecocokan pertama di setiap baris teks.
Ketika Select-String
menemukan lebih dari satu kecocokan dalam baris teks, itu masih memancarkan hanya satu objek MatchInfo untuk baris, tetapi properti Cocokkan objek berisi semua kecocokan.
Catatan
Parameter ini diabaikan ketika digunakan dalam kombinasi dengan parameter SimpleMatch . Jika Anda ingin mengembalikan semua kecocokan dan pola yang Anda cari berisi karakter ekspresi reguler, Anda harus keluar dari karakter tersebut daripada menggunakan SimpleMatch. Lihat about_Regular_Expressions untuk informasi selengkapnya tentang melarikan diri dari ekspresi reguler.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-CaseSensitive
Menunjukkan bahwa cmdlet cocok peka huruf besar/kecil. Secara default, kecocokan tidak peka huruf besar/kecil.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Context
Mengambil jumlah baris yang ditentukan sebelum dan sesudah garis yang cocok dengan pola.
Jika Anda memasukkan satu angka sebagai nilai parameter ini, angka tersebut menentukan jumlah baris yang diambil sebelum dan sesudah kecocokan. Jika Anda memasukkan dua angka sebagai nilai, angka pertama menentukan jumlah baris sebelum kecocokan dan angka kedua menentukan jumlah baris setelah kecocokan. Contohnya,-Context 2,3
.
Di tampilan default, garis dengan kecocokan ditunjukkan oleh kurung sudut kanan (>
) (ASCII 62) di kolom pertama tampilan. Baris yang tidak ditandai adalah konteksnya.
Parameter Konteks tidak mengubah jumlah objek yang dihasilkan oleh Select-String
.
Select-String
menghasilkan satu objek MatchInfo untuk setiap kecocokan. Konteks disimpan sebagai array string dalam properti Konteks objek.
Saat output Select-String
perintah dikirimkan alur ke perintah lain Select-String
, perintah penerima hanya mencari teks di baris yang cocok. Baris yang cocok adalah nilai properti Baris dari objek MatchInfo , bukan teks dalam baris konteks. Akibatnya, parameter Konteks tidak valid pada perintah penerimaan Select-String
.
Saat konteks menyertakan kecocokan, objek MatchInfo untuk setiap kecocokan menyertakan semua baris konteks, tetapi baris yang tumpang tindih hanya muncul sekali di tampilan.
Jenis: | Int32[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Culture
Menentukan nama budaya agar sesuai dengan pola yang ditentukan. Parameter Budaya harus digunakan dengan parameter SimpleMatch . Perilaku default menggunakan budaya runspace PowerShell saat ini (sesi).
Untuk mendapatkan daftar semua budaya yang didukung, gunakan Get-Culture -ListAvailable
perintah .
Selain itu, parameter ini menerima argumen berikut:
- CurrentCulture, itu default;
- Ordinal, yaitu perbandingan biner non-linguistik;
- Invarian, yaitu perbandingan independen budaya.
Dengan Select-String -Culture Ordinal -CaseSensitive -SimpleMatch
perintah Anda mendapatkan perbandingan biner tercepat.
Parameter Budaya menggunakan penyelesaian tab untuk menggulir daftar argumen yang menentukan budaya yang tersedia. Untuk mencantumkan semua argumen yang tersedia, gunakan perintah berikut:
(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues
Untuk informasi selengkapnya tentang properti .NET CultureInfo.Name, lihat CultureInfo.Name.
Parameter Budaya diperkenalkan di PowerShell 7.
Jenis: | String |
Position: | Named |
Nilai default: | Culture of the current PowerShell session |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Encoding
Menentukan jenis pengodean untuk file target. Nilai defaultnya adalah utf8NoBOM
.
Nilai yang dapat diterima untuk parameter ini adalah sebagai berikut:
ascii
: Menggunakan pengodean untuk set karakter ASCII (7-bit).ansi
: Menggunakan pengodean untuk halaman kode ANSI budaya saat ini. Opsi ini ditambahkan di PowerShell 7.4.bigendianunicode
: Mengodekan dalam format UTF-16 menggunakan urutan byte big-endian.bigendianutf32
: Mengodekan dalam format UTF-32 menggunakan urutan byte big-endian.oem
: Menggunakan pengodean default untuk MS-DOS dan program konsol.unicode
: Mengodekan dalam format UTF-16 menggunakan urutan byte little-endian.utf7
: Mengodekan dalam format UTF-7.utf8
: Mengodekan dalam format UTF-8.utf8BOM
: Mengodekan dalam format UTF-8 dengan Byte Order Mark (BOM)utf8NoBOM
: Mengodekan dalam format UTF-8 tanpa Byte Order Mark (BOM)utf32
: Mengodekan dalam format UTF-32.
Dimulai dengan PowerShell 6.2, parameter Pengodean juga memungkinkan ID numerik halaman kode terdaftar (seperti -Encoding 1251
) atau nama string halaman kode terdaftar (seperti -Encoding "windows-1251"
). Untuk informasi selengkapnya, lihat dokumentasi .NET untuk Encoding.CodePage.
Dimulai dengan PowerShell 7.4, Anda dapat menggunakan Ansi
nilai untuk parameter Pengodean untuk meneruskan ID numerik untuk halaman kode ANSI budaya saat ini tanpa harus menentukannya secara manual.
Catatan
UTF-7* tidak lagi disarankan untuk digunakan. Pada PowerShell 7.1, peringatan ditulis jika Anda menentukan utf7
untuk parameter Pengodean .
Jenis: | Encoding |
Nilai yang diterima: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Nilai default: | UTF8NoBOM |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Exclude
Kecualikan item yang ditentukan. Nilai parameter ini memenuhi syarat parameter Path . Masukkan elemen atau pola jalur, seperti *.txt
. Kartubebas diizinkan.
Jenis: | String[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | True |
-Include
Menyertakan item yang ditentukan. Nilai parameter ini memenuhi syarat parameter Path . Masukkan elemen atau pola jalur, seperti *.txt
. Kartubebas diizinkan.
Jenis: | String[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | True |
-InputObject
Menentukan teks yang akan dicari. Masukkan variabel yang berisi teks, atau ketik perintah atau ekspresi yang mendapatkan teks.
Menggunakan parameter InputObject tidak sama dengan mengirim string ke bawah alur ke Select-String
.
Saat Anda menyalurkan lebih dari satu string ke Select-String
cmdlet, ia mencari teks yang ditentukan di setiap string dan mengembalikan setiap string yang berisi teks pencarian.
Saat Anda menggunakan parameter InputObject untuk mengirimkan kumpulan string, Select-String
memperlakukan koleksi sebagai string gabungan tunggal. Select-String
mengembalikan string sebagai unit jika menemukan teks pencarian dalam string apa pun.
Objek FileInfo diperlakukan sebagai jalur ke file. Ketika jalur file ditentukan, Select-String
cari konten file, bukan ToString()
representasi objek.
Jenis: | PSObject |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-List
Hanya instans pertama teks yang cocok yang dikembalikan dari setiap file input. Ini adalah cara paling efisien untuk mengambil daftar file yang memiliki konten yang cocok dengan ekspresi reguler.
Secara default, Select-String
mengembalikan objek MatchInfo untuk setiap kecocokan yang ditemukannya.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-LiteralPath
Menentukan jalur ke file yang akan dicari. Nilai parameter LiteralPath digunakan persis seperti yang ditik. Tidak ada karakter yang ditafsirkan sebagai kartubebas. Jika jalur menyertakan karakter escape, sertakan dalam tanda kutip tunggal. Tanda kutip tunggal memberi tahu PowerShell untuk tidak menginterpretasikan karakter apa pun sebagai urutan escape. Untuk informasi selengkapnya, lihat about_Quoting_Rules.
Jenis: | String[] |
Alias: | PSPath, LP |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-NoEmphasis
Secara default, Select-String
menyoroti string yang cocok dengan pola yang Anda cari dengan parameter Pola . Parameter NoEmphasis menonaktifkan penyorotan.
Penekanan menggunakan warna negatif berdasarkan latar belakang PowerShell dan warna teks Anda. Misalnya, jika warna PowerShell Anda adalah latar belakang hitam dengan teks putih. Penekanannya adalah latar belakang putih dengan teks hitam.
Parameter ini diperkenalkan di PowerShell 7.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-NotMatch
Parameter NotMatch menemukan teks yang tidak cocok dengan pola yang ditentukan.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Path
Menentukan jalur ke file yang akan dicari. Kartubebas diizinkan. Lokasi default adalah direktori lokal.
Tentukan file dalam direktori, seperti log1.txt
, , *.doc
atau *.*
. Jika Anda hanya menentukan direktori, perintah gagal.
Jenis: | String[] |
Position: | 1 |
Nilai default: | Local directory |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | True |
-Pattern
Menentukan teks yang akan ditemukan pada setiap baris. Nilai pola diperlakukan sebagai ekspresi reguler.
Untuk mempelajari tentang ekspresi reguler, lihat about_Regular_Expressions.
Jenis: | String[] |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Quiet
Menunjukkan bahwa cmdlet mengembalikan respons sederhana alih-alih objek MatchInfo . Nilai yang dikembalikan adalah $true
jika pola ditemukan atau $null
jika pola tidak ditemukan.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Raw
Menyebabkan cmdlet hanya menghasilkan string yang cocok, bukan objek MatchInfo . Ini adalah hasil dalam perilaku yang paling mirip dengan perintah grep Unix atau Windows findstr.exe.
Parameter ini diperkenalkan di PowerShell 7.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-SimpleMatch
Menunjukkan bahwa cmdlet menggunakan kecocokan sederhana daripada kecocokan ekspresi reguler. Dalam kecocokan sederhana, Select-String
cari input untuk teks dalam parameter Pola . Ini tidak menginterpretasikan nilai parameter Pola sebagai pernyataan ekspresi reguler.
Selain itu, ketika SimpleMatch digunakan, properti Cocokkan objek MatchInfo yang dikembalikan kosong.
Catatan
Ketika parameter ini digunakan dengan parameter AllMatches , AllMatches diabaikan.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
Anda dapat menyalurkan objek apa pun yang memiliki ToString()
metode ke cmdlet ini.
Output
Secara default, cmdlet ini mengembalikan objek MatchInfo untuk setiap kecocokan yang ditemukan.
Saat Anda menggunakan parameter Tenang, cmdlet ini mengembalikan nilai Boolean yang menunjukkan apakah pola ditemukan.
Saat Anda menggunakan parameter Mentah , cmdlet ini mengembalikan sekumpulan objek String yang cocok dengan pola.
Catatan
PowerShell menyertakan alias berikut untuk Select-String
:
- Semua platform:
sls
Select-String
mirip grep
dengan di UNIX atau findstr.exe
di Windows.
sls
Alias untuk Select-String
cmdlet diperkenalkan di PowerShell 3.0.
Catatan
Menurut Kata Kerja yang Disetujui untuk Perintah PowerShell, awalan alias resmi untuk Select-*
cmdlet adalah sc
, bukan sl
. Oleh karena itu, alias yang tepat untuk Select-String
harus scs
, bukan sls
. Ini adalah pengecualian untuk aturan ini.
Saat pipa objek ke Select-String
:
- Objek FileInfo diperlakukan sebagai jalur ke file. Ketika jalur file ditentukan,
Select-String
cari konten file, bukanToString()
representasi objek. - Hasil
ToString()
dari objek yang disalurkan bukanlah representasi string kaya yang sama yang dihasilkan oleh sistem pemformatan PowerShell. Jadi, Anda mungkin perlu menyalurkan objek terlebihOut-String
dahulu. Untuk informasi selengkapnya, lihat Contoh 10.
Untuk menggunakan Select-String
, ketik teks yang ingin Anda temukan sebagai nilai parameter Pola . Untuk menentukan teks yang akan dicari, gunakan kriteria berikut:
- Ketik teks dalam string yang dikutip, lalu pipakan ke
Select-String
. - Simpan string teks dalam variabel, lalu tentukan variabel sebagai nilai parameter InputObject .
- Jika teks disimpan dalam file, gunakan parameter Jalur untuk menentukan jalur ke file.
Secara default, Select-String
menginterpretasikan nilai parameter Pola sebagai ekspresi reguler. Untuk informasi selengkapnya, lihat about_Regular_Expressions. Anda dapat menggunakan parameter SimpleMatch untuk mengambil alih pencocokan ekspresi reguler. Parameter SimpleMatch menemukan instans nilai parameter Pola dalam input.
Output Select-String
default adalah objek MatchInfo , yang mencakup informasi terperinci tentang kecocokan. Informasi dalam objek berguna saat Anda mencari teks dalam file, karena objek MatchInfo memiliki properti seperti Nama File dan Baris. Ketika input bukan dari file, nilai parameter ini adalah InputStream.
Jika Anda tidak memerlukan informasi di objek MatchInfo , gunakan parameter Tenang . Parameter Tenang mengembalikan nilai Boolean (Benar atau Salah) untuk menunjukkan apakah ditemukan kecocokan, bukan objek MatchInfo .
Saat mencocokkan frasa, Select-String
menggunakan budaya saat ini yang ditetapkan untuk sistem. Untuk menemukan budaya saat ini, gunakan Get-Culture
cmdlet .
Untuk menemukan properti objek MatchInfo , ketik perintah berikut:
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *