Bagikan melalui


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-Stringmenggunakan 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-Stringmenampilkan 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-Stringmenggunakan parameter Jalur dengan kartubebas tanda bintang (*) untuk mencari semua file di direktori saat ini dengan ekstensi .txtnama 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-Stringmenggunakan 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-ChildItemmenggunakan parameter Jalur untuk menentukan C:\Windows\System32*.txt. Parameter Recurse mencakup subdirektori. Objek dikirim ke alur ke Select-String.

Select-Stringmenggunakan 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-Stringmenggunakan 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-Stringmenggunakan 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-Stringmenggunakan 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, , *.docatau *.*. 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

PSObject

Anda dapat menyalurkan objek apa pun yang memiliki ToString() metode ke cmdlet ini.

Output

MatchInfo

Secara default, cmdlet ini mengembalikan objek MatchInfo untuk setiap kecocokan yang ditemukan.

Boolean

Saat Anda menggunakan parameter Tenang, cmdlet ini mengembalikan nilai Boolean yang menunjukkan apakah pola ditemukan.

String

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, bukan ToString() 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 terlebih Out-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 *