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-Content
mengembalikan 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
.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | 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.
Jenis: | PSCredential |
Position: | Named |
Nilai default: | Current user |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | 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.
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
: 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 .
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, 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.
Jenis: | String[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | 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.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | 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.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | 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.
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 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 |
-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.
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.
Mentah adalah parameter dinamis yang ditambahkan penyedia FileSystem ke Get-Content
cmdlet 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 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.
Jenis: | Int64 |
Position: | Named |
Nilai default: | 1 |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | 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.
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, Terakhir. Nilai 0
tidak mengembalikan 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
tidak mengembalikan 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, 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.
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 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.