Select-String
Menemukan teks dalam string dan file.
Sintaks
File (Default)
Select-String
[-Pattern] <String[]>
[-Path] <String[]>
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
ObjectRaw
Select-String
[-Pattern] <String[]>
-InputObject <PSObject>
-Raw
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Object
Select-String
[-Pattern] <String[]>
-InputObject <PSObject>
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
FileRaw
Select-String
[-Pattern] <String[]>
[-Path] <String[]>
-Raw
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
LiteralFileRaw
Select-String
[-Pattern] <String[]>
-LiteralPath <String[]>
-Raw
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
LiteralFile
Select-String
[-Pattern] <String[]>
-LiteralPath <String[]>
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Deskripsi
Cmdlet Select-String menggunakan pencocokan ekspresi reguler untuk mencari pola teks dalam string input dan file. Anda dapat menggunakan Select-String mirip dengan grep 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, 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 bahwa Select-String harus 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 cmdlet Select-String.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
String teks Hello dan HELLO dikirimkan alur ke cmdlet Select-String.
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 ekstensi nama file .txt 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 cmdlet Out-File 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 nama file .txt. 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
Cmdlet Select-String menggunakan dua parameter, Path dan Pola. Parameter Jalur menggunakan variabel $PSHOME yang menentukan direktori PowerShell. Sisa jalur mencakup en-US subdirektori dan menentukan setiap file *.txt 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. Kata kunci function menggunakan nama Search-Help. Tekan Masukkan 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 en-US subdirektori yang menentukan setiap file *.txt dalam direktori.
Perintah Select-String dalam fungsi menggunakan parameter Path dan Pattern. Parameter Jalur menggunakan variabel $PSHelp untuk mendapatkan jalur. Parameter Pola menggunakan string About_ sebagai kriteria pencarian.
Untuk menjalankan fungsi, ketik Search-Help. Perintah Select-String fungsi 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 tentang_Variabel_Automatis.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.Message} -Pattern 'Failed'
Cmdlet Get-WinEvent 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 cmdlet Select-String.
Select-String menggunakan parameter InputObject. Variabel $_ mewakili objek saat ini dan Message adalah 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 Berulang mencakup subdirektori. Objek dikirimkan melalui saluran 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.
Nota
Bergantung pada izin Anda, Anda mungkin melihat Akses ditolak pesan 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
Cmdlet Get-Command 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 dan Set sebagai pola pencarian. Parameter NotMatch mengecualikan Dapatkan dan Atur dari hasil.
Select-String menampilkan output di konsol PowerShell yang tidak menyertakan Get atau Set.
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
Cmdlet Get-Command 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 kurung sudut (>). Parameter Context 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 setiap pola yang cocok dalam baris teks. Secara default, Select-String hanya menemukan kemunculan pertama pola dalam baris teks. Contoh ini menggunakan properti objek yang ditemukan dengan cmdlet Get-Member.
$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 Get-ChildItem menggunakan parameter Jalur. Parameter Jalur menggunakan variabel $PSHOME yang menentukan direktori PowerShell. Sisa jalur mencakup en-US subdirektori dan menentukan setiap file *.txt dalam direktori. Objek Get-ChildItem disimpan dalam variabel $A. Variabel $A dikirimkan alur ke cmdlet Select-String.
Select-String menggunakan parameter Pola untuk mencari setiap file untuk string PowerShell.
Dari baris perintah PowerShell, konten variabel $A 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 Get-ChildItem dan Select-String yang sama, tetapi menambahkan parameter AllMatches.
AllMatches menemukan setiap kemunculan pola PowerShell di setiap baris. Objek yang disimpan dalam variabel $A 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() objek yang disalurkan bukanlah representasi string kaya yang sama yang dihasilkan oleh sistem pemformatan PowerShell. Jadi, Anda mungkin perlu menyalurkan objek ke Out-String terlebih dahulu.
Piping ke 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 ke 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.
Nota
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.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-CaseSensitive
Menunjukkan bahwa cmdlet cocok peka huruf besar/kecil. Secara default, kecocokan tidak peka huruf besar/kecil.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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.
Dalam tampilan default, garis dengan kecocokan ditunjukkan oleh tanda 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 perintah Select-String dikirimkan alur ke perintah Select-String lain, perintah penerimaan 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 Select-String penerimaan.
Saat konteks menyertakan kecocokan, objek MatchInfo untuk setiap kecocokan mencakup semua baris konteks, tetapi garis yang tumpang tindih hanya muncul sekali di tampilan.
Properti parameter
| Jenis: | Int32[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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 perintah Get-Culture -ListAvailable.
Selain itu, parameter ini menerima argumen berikut:
- CurrentCulture, itu default;
- Ordinal, yaitu perbandingan biner non-linguistik;
- Invarian, yaitu perbandingan independen budaya.
Dengan perintah Select-String -Culture Ordinal -CaseSensitive -SimpleMatch 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.
Properti parameter
| Jenis: | String |
| Nilai default: | Culture of the current PowerShell session |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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: Mengenkripsi dalam format UTF-16 menggunakan urutan byte big-endian. -
bigendianutf32: Mengenkode dalam format UTF-32 menggunakan urutan byte big-endian. -
oem: Menggunakan pengkodean default untuk program MS-DOS dan program konsol. -
unicode: Mengode 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
Dimulai dengan PowerShell 7.4, Anda dapat menggunakan nilai
Nota
UTF-7* tidak lagi disarankan untuk digunakan. Sejak PowerShell 7.1, sebuah peringatan akan ditulis jika Anda menentukan utf7 untuk parameter Pengodean .
Properti parameter
| Jenis: | Encoding |
| Nilai default: | UTF8NoBOM |
| Nilai yang diterima: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Exclude
Kecualikan item yang ditentukan. Nilai parameter ini memenuhi syarat parameter Jalur. Masukkan elemen atau pola jalur, seperti *.txt. Kartu liar diizinkan.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | True |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Include
Menyertakan item yang ditentukan. Nilai parameter ini memenuhi syarat parameter Jalur. Masukkan elemen atau pola jalur, seperti *.txt. Kartu liar diizinkan.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | True |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-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 alur ke Select-String.
Saat Anda menyalurkan lebih dari satu string ke cmdlet Select-String, 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 satu string gabungan.
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 mencari konten file, bukan representasi objek ToString().
Properti parameter
| Jenis: | PSObject |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
Object
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
ObjectRaw
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-LiteralPath
Menentukan jalur ke file yang akan dicari. Nilai parameter
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | PSPath, LP |
Set parameter
LiteralFileRaw
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
LiteralFile
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | 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.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-NotMatch
Parameter NotMatch menemukan teks yang tidak cocok dengan pola yang ditentukan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Path
Menentukan jalur ke file yang akan dicari. Kartu liar diizinkan. Lokasi default adalah direktori lokal.
Tentukan file dalam direktori, seperti log1.txt, *.doc, atau *.*. Jika Anda hanya menentukan direktori, perintah gagal.
Properti parameter
| Jenis: | String[] |
| Nilai default: | Local directory |
| Mendukung wildcard: | True |
| DontShow: | False |
Set parameter
File
| Position: | 1 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
FileRaw
| Position: | 1 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-Pattern
Menentukan teks yang akan ditemukan pada setiap baris. Nilai pola diperlakukan sebagai ekspresi reguler.
Untuk mempelajari tentang ekspresi reguler, lihat about_Regular_Expressions.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Quiet
Menunjukkan bahwa cmdlet mengembalikan respons sederhana alih-alih objek MatchInfo. Nilai yang dikembalikan $true jika pola ditemukan atau $null jika pola tidak ditemukan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
File
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
Object
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
LiteralFile
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Raw
Menyebabkan cmdlet hanya menghasilkan string yang cocok, bukan objek matchInfo. Perilaku ini paling mirip dengan perintah Unix grep atau Windows findstr.exe .
Parameter ini diperkenalkan di PowerShell 7.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
ObjectRaw
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
FileRaw
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
LiteralFileRaw
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-SimpleMatch
Menunjukkan bahwa cmdlet menggunakan kecocokan sederhana daripada kecocokan ekspresi reguler. Dalam kecocokan sederhana, Select-String mencari 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.
Nota
Ketika parameter ini digunakan dengan parameter AllMatches, AllMatches diabaikan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
PSObject
Anda dapat menyalurkan objek apa pun yang memiliki metode ToString() ke cmdlet ini.
Output
MatchInfo
Secara default, cmdlet ini mengembalikan objek MatchInfo untuk setiap kecocokan yang ditemukan.
Boolean
Saat Anda menggunakan parameter Quiet, cmdlet ini mengembalikan nilai Boolean yang menunjukkan apakah pola ditemukan.
String
Saat Anda menggunakan parameter Raw, cmdlet ini mengembalikan sekumpulan objek String yang cocok dengan pola.
Catatan
PowerShell menyertakan alias berikut untuk Select-String:
- Semua platform:
sls
Select-String mirip dengan grep di Unix atau findstr.exe di Windows.
Alias sls untuk cmdlet Select-String diperkenalkan di PowerShell 3.0.
Nota
Menurut Kata Kerja yang Disetujui untuk Perintah PowerShell, awalan alias resmi untuk cmdlet Select-*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-Stringmencari konten file, bukan representasi objekToString(). - Hasil
ToString()objek yang disalurkan bukanlah representasi string kaya yang sama yang dihasilkan oleh sistem pemformatan PowerShell. Jadi, Anda mungkin perlu menyalurkan objek keOut-Stringterlebih 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 pipa 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 default Select-String 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 Filename dan Baris. Ketika input bukan dari file, nilai parameter ini InputStream.
Jika Anda tidak memerlukan informasi di objek MatchInfo, gunakan parameter Diam. Parameter Quiet mengembalikan nilai Boolean (Benar atau Salah) untuk menunjukkan apakah parameter menemukan kecocokan, bukan objek MatchInfo.
Saat mencocokkan frasa, Select-String menggunakan budaya saat ini yang ditetapkan untuk sistem. Untuk menemukan budaya saat ini, gunakan cmdlet Get-Culture.
Untuk menemukan properti objek MatchInfo, ketik perintah berikut:
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *