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-Content
mengembalikan 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
Anda dapat menyalurkan jumlah baca atau jumlah total ke cmdlet ini.
String[]
Anda dapat menyalurkan jalur ke cmdlet ini.
Anda dapat menyalurkan kredensial ke cmdlet ini.
Output
Saat Anda menggunakan parameter AsByteStream, cmdlet ini mengembalikan konten sebagai byte.
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.