Get-Content

Mendapatkan konten item di lokasi yang ditentukan.

Sintaks

Get-Content
   [-ReadCount <Int64>]
   [-TotalCount <Int64>]
   [-Tail <Int32>]
   [-Path] <String[]>
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Force]
   [-Credential <PSCredential>]
   [-Delimiter <String>]
   [-Wait]
   [-Raw]
   [-Encoding <Encoding>]
   [-AsByteStream]
   [-Stream <String>]
   [<CommonParameters>]
Get-Content
   [-ReadCount <Int64>]
   [-TotalCount <Int64>]
   [-Tail <Int32>]
   -LiteralPath <String[]>
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Force]
   [-Credential <PSCredential>]
   [-Delimiter <String>]
   [-Wait]
   [-Raw]
   [-Encoding <Encoding>]
   [-AsByteStream]
   [-Stream <String>]
   [<CommonParameters>]

Deskripsi

Get-Content Cmdlet mendapatkan konten item di lokasi yang ditentukan oleh jalur, seperti teks dalam file atau konten fungsi. Untuk file, konten dibaca satu baris sekaligus dan mengembalikan kumpulan objek, masing-masing mewakili baris konten.

Dimulai di PowerShell 3.0, Get-Content juga bisa mendapatkan jumlah baris tertentu dari awal atau akhir item.

Contoh

Contoh 1: Mendapatkan konten file teks

Contoh ini mendapatkan konten file di direktori saat ini. File LineNumbers.txt memiliki 100 baris dalam format, Ini adalah Baris X dan digunakan dalam beberapa contoh.

1..100 | ForEach-Object { Add-Content -Path .\LineNumbers.txt -Value "This is line $_." }
Get-Content -Path .\LineNumbers.txt

This is Line 1
This is Line 2
...
This is line 99.
This is line 100.

Nilai array 1-100 dikirimkan alur ke ForEach-Object cmdlet. ForEach-Object menggunakan blok skrip dengan Add-Content cmdlet untuk membuat LineNumbers.txt file. Variabel $_ mewakili nilai array saat setiap objek dikirim ke alur. Get-Content Cmdlet menggunakan parameter Jalur untuk menentukan LineNumbers.txt file dan menampilkan konten di konsol PowerShell.

Contoh 2: Membatasi jumlah baris yang dikembalikan Get-Content

Perintah ini mendapatkan lima baris pertama file. Parameter TotalCount mendapatkan lima baris konten pertama. Contoh ini menggunakan yang dirujuk LineNumbers.txt dalam Contoh 1.

Get-Content -Path .\LineNumbers.txt -TotalCount 5

This is Line 1
This is Line 2
This is Line 3
This is Line 4
This is Line 5

Contoh 3: Mendapatkan baris konten tertentu dari file teks

Perintah ini mendapatkan jumlah baris tertentu dari file lalu hanya menampilkan baris terakhir konten tersebut. Parameter TotalCount mendapatkan 25 baris konten pertama. Contoh ini menggunakan file yang dirujuk LineNumbers.txt dalam Contoh 1.

(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]

This is Line 25

Perintah Get-Content dibungkus dalam tanda kurung sehingga perintah selesai sebelum masuk ke langkah berikutnya. Get-Contentmengembalikan array baris, ini memungkinkan Anda menambahkan notasi indeks setelah tanda kurung untuk mengambil nomor baris tertentu. Dalam hal ini, [-1] indeks menentukan indeks terakhir dalam array yang dikembalikan dari 25 baris yang diambil.

Contoh 4: Mendapatkan baris terakhir file teks

Perintah ini mendapatkan baris konten terakhir dari file. Contoh ini menggunakan LineNumbers.txt file yang dibuat di Contoh 1.

Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1

This is Line 100

Contoh ini menggunakan Get-Item cmdlet untuk menunjukkan bahwa Anda dapat menyalurkan file ke Get-Content. Parameter Tail mendapatkan baris terakhir file. Metode ini lebih cepat daripada mengambil semua baris dalam variabel dan menggunakan [-1] notasi indeks.

Contoh 5: Mendapatkan konten aliran data alternatif

Contoh ini menjelaskan cara menggunakan parameter Stream untuk mendapatkan konten aliran data alternatif untuk file yang disimpan pada volume Windows NTFS. Dalam contoh ini, Set-Content cmdlet digunakan untuk membuat konten sampel dalam file bernama Stream.txt.

Set-Content -Path .\Stream.txt -Value 'This is the content of the Stream.txt file'
# Specify a wildcard to the Stream parameter to display all streams of the recently created file.
Get-Item -Path .\Stream.txt -Stream *

PSPath        : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath  : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName   : Stream.txt::$DATA
PSDrive       : C
PSProvider    : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName      : C:\Test\Stream.txt
Stream        : :$DATA
Length        : 44

# Retrieve the content of the primary stream.
# Note the single quotes to prevent variable substitution.
Get-Content -Path .\Stream.txt -Stream ':$DATA'

This is the content of the Stream.txt file

# Alternative way to get the same content.
Get-Content -Path .\Stream.txt -Stream ""
# The primary stream doesn't need to be specified to get the primary stream of the file.
# This gets the same data as the prior two examples.
Get-Content -Path .\Stream.txt

This is the content of the Stream.txt file

# Use the Stream parameter of Add-Content to create a new Stream containing sample content.
$addContentSplat = @{
    Path = '.\Stream.txt'
    Stream = 'NewStream'
    Value = 'Added a stream named NewStream to Stream.txt'
}
Add-Content @addContentSplat

# Use Get-Item to verify the stream was created.
Get-Item -Path .\Stream.txt -Stream *

PSPath        : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath  : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName   : Stream.txt::$DATA
PSDrive       : C
PSProvider    : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName      : C:\Test\Stream.txt
Stream        : :$DATA
Length        : 44

PSPath        : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt:NewStream
PSParentPath  : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName   : Stream.txt:NewStream
PSDrive       : C
PSProvider    : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName      : C:\Test\Stream.txt
Stream        : NewStream
Length        : 46

# Retrieve the content of your newly created Stream.
Get-Content -Path .\Stream.txt -Stream NewStream

Added a stream named NewStream to Stream.txt

Parameter Stream adalah parameter dinamis penyedia FileSystem. Secara default Get-Content hanya mengambil data dari default, atau :$DATA streaming. Aliran dapat digunakan untuk menyimpan data tersembunyi seperti atribut, pengaturan keamanan, atau data lainnya. Mereka juga dapat disimpan di direktori tanpa menjadi item turunan.

Contoh 6: Mendapatkan konten mentah

Perintah dalam contoh ini mendapatkan konten file sebagai satu string, bukan array string. Secara default, tanpa parameter dinamis Mentah , konten dikembalikan sebagai array string yang dibatasi baris baru. Contoh ini menggunakan file yang dirujuk LineNumbers.txt dalam Contoh 1.

$raw = Get-Content -Path .\LineNumbers.txt -Raw
$lines = Get-Content -Path .\LineNumbers.txt
Write-Host "Raw contains $($raw.Count) lines."
Write-Host "Lines contains $($lines.Count) lines."

Raw contains 1 lines.
Lines contains 100 lines.

Contoh 7: Menggunakan Filter dengan Get-Content

Anda dapat menentukan filter ke Get-Content cmdlet. Saat menggunakan filter untuk memenuhi syarat parameter Jalur , Anda perlu menyertakan tanda bintang berikutnya (*) untuk menunjukkan konten jalur.

Perintah berikut mendapatkan konten semua *.log file dalam C:\Temp direktori.

Get-Content -Path C:\Temp\* -Filter *.log

Contoh 8: Mendapatkan konten file sebagai array byte

Contoh ini menunjukkan cara mendapatkan konten file sebagai [byte[]] objek tunggal.

$byteArray = Get-Content -Path C:\temp\test.txt -AsByteStream -Raw
Get-Member -InputObject $bytearray

TypeName: System.Byte[]

Name           MemberType            Definition
----           ----------            ----------
Count          AliasProperty         Count = Length
Add            Method                int IList.Add(System.Object value)

Perintah pertama menggunakan parameter AsByteStream untuk mendapatkan aliran byte dari file. Parameter Mentah memastikan bahwa byte dikembalikan sebagai [System.Byte[]]. Jika parameter Raw tidak ada, nilai yang dikembalikan adalah aliran byte, yang ditafsirkan oleh PowerShell sebagai [System.Object[]].

Parameter

-AsByteStream

Menentukan bahwa konten harus dibaca sebagai aliran byte. Parameter AsByteStream diperkenalkan di Windows PowerShell 6.0.

Peringatan terjadi saat Anda menggunakan parameter AsByteStream dengan parameter Pengodean . Parameter AsByteStream mengabaikan pengodean apa pun dan output dikembalikan sebagai aliran byte.

Saat membaca dari dan menulis ke file biner, gunakan parameter AsByteStream dan nilai 0 untuk parameter ReadCount . Nilai ReadCount 0 membaca seluruh file dalam satu operasi baca. Nilai ReadCount default, 1, membaca satu byte di setiap operasi baca dan mengonversi setiap byte menjadi objek terpisah. Piping output byte tunggal untuk Set-Content menyebabkan kesalahan kecuali Anda menggunakan parameter AsByteStream dengan Set-Content.

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

-Credential

Catatan

Parameter ini tidak didukung oleh penyedia apa pun yang diinstal dengan PowerShell. Untuk meniru pengguna lain, atau meningkatkan kredensial Anda saat menjalankan cmdlet ini, gunakan Invoke-Command.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Delimiter

Menentukan pemisah yang Get-Content menggunakan untuk membagi file menjadi objek saat dibaca. Defaultnya adalah \n, karakter akhir baris. Saat membaca file teks, Get-Content mengembalikan kumpulan objek string, masing-masing berakhir dengan karakter akhir baris. Saat Anda memasukkan pemisah yang tidak ada dalam file, Get-Content mengembalikan seluruh file sebagai objek tunggal yang tidak dibatasi.

Anda dapat menggunakan parameter ini untuk membagi file besar menjadi file yang lebih kecil dengan menentukan pemisah file, sebagai pemisah. Pemisah dipertahankan (tidak dibuang) dan menjadi item terakhir di setiap bagian file.

Pemisah adalah parameter dinamis yang ditambahkan penyedia FileSystem ke Get-Content cmdlet. Parameter ini hanya berfungsi dalam drive sistem file.

Catatan

Saat ini, ketika nilai parameter Pembatas adalah string kosong, Get-Content tidak mengembalikan apa pun. Ini adalah masalah yang sudah diketahui. Untuk memaksa Get-Content mengembalikan seluruh file sebagai string tunggal yang tidak dibatasi. Masukkan nilai yang tidak ada dalam file.

Type:String
Position:Named
Default value:End-of-line character
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Pengodean adalah parameter dinamis yang ditambahkan penyedia FileSystem ke Get-Content cmdlet. Parameter ini hanya tersedia dalam drive sistem file.

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 .

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

Menentukan, sebagai array string, item atau item yang dikecualikan cmdlet ini dalam operasi. Nilai parameter ini memenuhi syarat parameter Path .

Masukkan elemen atau pola jalur, seperti *.txt. Karakter kartubebas diizinkan.

Parameter Kecualikan hanya efektif ketika perintah menyertakan konten item, seperti C:\Windows\*, di mana karakter kartubebas C:\Windows menentukan konten direktori.

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

-Filter

Menentukan filter untuk memenuhi syarat parameter Jalur . Penyedia FileSystem adalah satu-satunya penyedia PowerShell yang diinstal yang mendukung penggunaan filter. Anda dapat menemukan sintaks untuk bahasa filter FileSystem dalam about_Wildcards. Filter lebih efisien daripada parameter lain, karena penyedia menerapkannya ketika cmdlet mendapatkan objek daripada memfilter PowerShell objek setelah diambil.

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

-Force

Paksa dapat mengambil alih atribut baca-saja atau membuat direktori untuk menyelesaikan jalur file. Parameter Paksa tidak mencoba mengubah izin file atau mengambil alih pembatasan keamanan.

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

-Include

Menentukan, sebagai array string, item atau item yang disertakan cmdlet ini dalam operasi. Nilai parameter ini memenuhi syarat parameter Path . Masukkan elemen atau pola jalur, seperti "*.txt". Karakter kartubebas diizinkan. Parameter Sertakan hanya efektif ketika perintah menyertakan konten item, seperti C:\Windows\*, di mana karakter kartubebas C:\Windows menentukan konten direktori.

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

-LiteralPath

Menentukan jalur ke satu atau beberapa lokasi. Nilai 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.

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

-Path

Menentukan jalur ke item di mana Get-Content mendapatkan konten. Karakter kartubebas diizinkan. Jalur harus berupa jalur ke item, bukan ke kontainer. Misalnya, Anda harus menentukan jalur ke satu atau beberapa file, bukan jalur ke direktori.

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

-Raw

Mengabaikan karakter baris baru dan mengembalikan seluruh konten file dalam satu string dengan baris baru yang dipertahankan. Secara default, karakter baris baru dalam file digunakan sebagai pemisah untuk memisahkan input menjadi array string. Parameter ini diperkenalkan di PowerShell 3.0.

Mentah adalah parameter dinamis yang ditambahkan penyedia FileSystem ke Get-Content cmdlet Parameter ini hanya berfungsi di drive sistem file.

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

-ReadCount

Menentukan berapa banyak baris konten yang dikirim melalui alur pada satu waktu. Nilai default adalah 1. Nilai 0 (nol) atau angka negatif mengirimkan semua konten pada satu waktu.

Parameter ini tidak mengubah konten yang ditampilkan, tetapi memengaruhi waktu yang diperlukan untuk menampilkan konten. Ketika nilai ReadCount meningkat, waktu yang diperlukan untuk mengembalikan baris pertama meningkat, tetapi total waktu untuk operasi menurun. Ini dapat membuat perbedaan yang terlihat dalam item besar.

Type:Int64
Position:Named
Default value:1
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Stream

Catatan

Parameter ini hanya tersedia di Windows.

Mendapatkan konten aliran file NTFS alternatif yang ditentukan dari file. Masukkan nama aliran. Kartubebas tidak didukung.

Stream adalah parameter dinamis yang ditambahkan penyedia FileSystem ke Get-Content cmdlet. Parameter ini hanya berfungsi dalam drive sistem file pada sistem Windows.

Parameter ini diperkenalkan di Windows PowerShell 3.0. Di PowerShell 7.2, Get-Content dapat mengambil konten aliran data alternatif dari direktori serta file.

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

-Tail

Menentukan jumlah baris dari akhir file atau item lainnya. Anda dapat menggunakan nama parameter Tail atau aliasnya, Terakhir. Nilai negatif menyebabkan cmdlet mengembalikan seluruh konten.

Parameter ini diperkenalkan di PowerShell 3.0.

Type:Int32
Aliases:Last
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-TotalCount

Menentukan jumlah baris dari awal file atau item lainnya. Nilai negatif menyebabkan cmdlet mengembalikan seluruh konten.

Anda dapat menggunakan nama parameter TotalCount atau aliasnya, Pertama atau Kepala.

Type:Int64
Aliases:First, Head
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Wait

Menyebabkan cmdlet menunggu tanpa batas waktu, menjaga file tetap terbuka, sampai terganggu. Saat menunggu, Get-Content memeriksa file sekali per detik dan menghasilkan baris baru jika ada. Saat digunakan dengan parameter TotalCount , Get-Content tunggu hingga jumlah baris yang ditentukan tersedia dalam file yang ditentukan. Misalnya, jika Anda menentukan TotalCount 10 dan file sudah memiliki 10 baris atau lebih, Get-Content mengembalikan 10 baris dan keluar. Jika file memiliki kurang dari 10 baris, Get-Content output setiap baris saat tiba, tetapi menunggu hingga baris kesepuluh tiba sebelum keluar.

Anda dapat mengganggu Tunggu dengan menekan Ctrl+C. Menghapus file menyebabkan kesalahan tidak mengakhiri yang juga mengganggu penantian.

Tunggu adalah parameter dinamis yang ditambahkan penyedia FileSystem ke Get-Content cmdlet. Parameter ini hanya berfungsi dalam drive sistem file. Tunggu tidak dapat dikombinasikan dengan Raw.

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

Input

Int64

Anda dapat menyalurkan jumlah baca atau jumlah total ke cmdlet ini.

String[]

Anda dapat menyalurkan jalur ke cmdlet ini.

PSCredential

Anda dapat menyalurkan kredensial ke cmdlet ini.

Output

Byte

Saat Anda menggunakan parameter AsByteStream , cmdlet ini mengembalikan konten sebagai byte.

String

Secara default, cmdlet ini mengembalikan konten sebagai array string, satu per baris. Saat Anda menggunakan parameter Mentah , parameter mengembalikan satu string yang berisi setiap baris dalam file.

Catatan

PowerShell menyertakan alias berikut untuk Get-Content:

  • Semua platform:
    • gc
    • type
  • Windows:
    • cat

Get-Content Cmdlet dirancang untuk bekerja dengan data yang diekspos oleh penyedia mana pun. Untuk mendapatkan penyedia dalam sesi Anda, gunakan Get-PSProvider cmdlet . Untuk informasi selengkapnya, lihat about_Providers.