Bagikan melalui


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

cmdlet Get-Content 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 isi 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 melalui alur ke cmdlet ForEach-Object. ForEach-Object menggunakan blok skrip dengan cmdlet Add-Content untuk membuat file LineNumbers.txt. Variabel $_ mewakili nilai array ketika setiap objek dikirim melalui jalur pemrosesan. Cmdlet Get-Content menggunakan parameter Jalur untuk menentukan file LineNumbers.txt dan menampilkan konten di konsol PowerShell.

Contoh 2: Batasi jumlah baris yang Get-Content hasilkan

Perintah ini mengambil lima baris pertama dari sebuah file. Parameter TotalCount mendapatkan lima baris konten pertama. Contoh ini menggunakan LineNumbers.txt yang dirujuk 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 mengambil 25 baris konten pertama. Contoh ini menggunakan file LineNumbers.txt yang dirujuk 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, indeks [-1] 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 file LineNumbers.txt yang dibuat di Contoh 1.

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

This is Line 100

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

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, cmdlet Set-Content 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 dari penyedia FileSystem . Secara default Get-Content hanya mengambil data dari aliran default, atau :$DATA. Streams dapat digunakan untuk menyimpan data tersembunyi seperti atribut, pengaturan keamanan, atau data lainnya. Mereka juga dapat disimpan di direktori tanpa menjadi sub-item.

Contoh 6: Mendapatkan konten mentah

Perintah dalam contoh ini mendapatkan konten file sebagai satu string, bukan array string. Secara default, tanpa parameter dinamis Raw, konten dikembalikan sebagai array string yang dibatasi baris baru. Contoh ini menggunakan file LineNumbers.txt yang dirujuk 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 cmdlet Get-Content. Saat menggunakan filter untuk menetapkan parameter Jalur, Anda perlu menyertakan tanda bintang belakang (*) untuk menunjukkan isi jalur.

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

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

Contoh 8: Mengambil isi file sebagai array byte

Contoh ini menunjukkan cara mendapatkan konten file sebagai [byte[]] sebagai 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 Raw 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 Pengkodean. 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 satu objek terpisah. Piping keluaran byte tunggal ke Set-Content menyebabkan kesalahan kecuali Anda menggunakan parameter AsByteStream dengan Set-Content.

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Credential

Nota

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.

Jenis:PSCredential
Position:Named
Nilai default:Current user
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-Delimiter

Menentukan pemisah yang Get-Content gunakan 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 berakhiran 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 penyedia FileSystem tambahkan ke cmdlet Get-Content. Parameter ini hanya berfungsi pada drive sistem berkas.

Nota

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

Jenis:String
Position:Named
Nilai default:End-of-line character
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: 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 konsol.
  • unicode: Mengkodekan 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.

"Penyedia FileSystem menambahkan pengodean sebagai parameter dinamis ke cmdlet Get-Content." Parameter ini hanya tersedia dalam drive sistem berkas.

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 nilai Ansi untuk parameter Pengodean untuk meneruskan ID numerik untuk halaman kode ANSI budaya saat ini tanpa harus menentukannya secara manual.

Nota

UTF-7* tidak lagi disarankan untuk digunakan. Sejak PowerShell 7.1, peringatan ditulis jika Anda menentukan utf7 untuk pengodean parameter .

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

Menentukan item atau item-item yang tidak akan disertakan dalam operasi oleh cmdlet ini, dalam bentuk array string. Nilai parameter ini memenuhi syarat parameter Jalur.

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

Parameter Exclude hanya efektif ketika perintah menyertakan isi item, seperti C:\Windows\*, di mana karakter wildcard menentukan isi direktori C:\Windows.

Jenis:String[]
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:True

-Filter

Menentukan filter untuk menspesifikasi 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 lainnya karena penyedia menerapkannya ketika cmdlet mendapatkan objek, alih-alih memfilter objek dengan PowerShell setelah objek diambil.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:True

-Force

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

Jenis:SwitchParameter
Position:Named
Nilai default:False
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Include

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

Jenis:String[]
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:True

-LiteralPath

Menentukan jalur ke satu atau beberapa lokasi. Nilai LiteralPath digunakan persis seperti yang diketik. Tidak ada karakter yang diartikan sebagai karakter pengganti. 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

-Path

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

Jenis:String[]
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard: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.

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

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-ReadCount

Menentukan berapa banyak baris konten yang dikirim melalui alur pada satu waktu. Nilai defaultnya 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.

Jenis:Int64
Position:Named
Nilai default:1
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-Stream

Nota

Parameter ini hanya tersedia di Windows.

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

Stream adalah parameter dinamis yang ditambahkan penyedia FileSystem ke cmdlet Get-Content. 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.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Tail

Menentukan jumlah baris dari akhir file atau item lainnya. Anda dapat menggunakan nama parameter Tail atau aliasnya, Last. Nilai 0 mengembalikan nol baris. Nilai negatif menyebabkan kesalahan.

Parameter ini diperkenalkan di PowerShell 3.0.

Jenis:Int32
Alias:Last
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-TotalCount

Menentukan jumlah baris dari awal file atau item lainnya. Nilai 0 mengembalikan nol baris. Nilai negatif menyebabkan kesalahan.

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

Jenis:Int64
Alias:First, Head
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-Wait

Menyebabkan cmdlet menunggu tanpa batas waktu dengan menjaga file tetap terbuka sampai dihentikan. Saat menunggu, Get-Content memeriksa file sekali per detik dan menghasilkan baris baru jika ada. Saat digunakan dengan parameter TotalCount, Get-Content menunggu 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 menghasilkan 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.

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

Jenis:SwitchParameter
Position:Named
Nilai default:False
Diperlukan:False
Terima input alur:False
Terima karakter wildcard: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 Raw, parameter mengembalikan satu string yang berisi setiap baris dalam file.

Catatan

PowerShell menyertakan alias berikut untuk Get-Content:

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

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