Out-File
Mengirim output ke file.
Sintaks
ByPath (Default)
Out-File
[-FilePath] <string>
[[-Encoding] <Encoding>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Out-File
[[-Encoding] <Encoding>]
-LiteralPath <string>
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
Cmdlet Out-File mengirim output ke file. Ini secara implisit menggunakan sistem pemformatan PowerShell untuk menulis ke file. File menerima representasi tampilan yang sama dengan terminal. Ini berarti bahwa output mungkin tidak ideal untuk pemrosesan terprogram kecuali semua objek input adalah string.
Mengalihkan output perintah PowerShell (cmdlet, fungsi, skrip) menggunakan operator pengalihan (>) secara fungsional setara dengan pipa ke Out-File tanpa parameter tambahan.
PowerShell 7.4 mengubah perilaku operator pengalihan saat digunakan untuk mengalihkan stdout stream dari perintah asli. Untuk informasi selengkapnya tentang pengalihan, lihat about_Redirection.
Contoh
Contoh 1: Mengirim output dan membuat file
Contoh ini memperlihatkan cara mengirim daftar proses komputer lokal ke file. Jika file tidak ada, Out-File membuat file di jalur yang ditentukan.
Get-Process | Out-File -FilePath .\Process.txt
Get-Content -Path .\Process.txt
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
29 22.39 35.40 10.98 42764 9 Application
53 99.04 113.96 0.00 32664 0 CcmExec
27 96.62 112.43 113.00 17720 9 Code
cmdlet Get-Process mendapatkan daftar proses yang berjalan di komputer lokal. Objek Proses dikirimkan alur ke cmdlet Out-File.
Out-File menggunakan parameter FilePath dan membuat file di direktori saat ini bernama Process.txt. Perintah Get-Content mendapatkan konten dari file dan menampilkannya di konsol PowerShell.
Contoh 2: Mencegah file yang ada ditimpa
Contoh ini mencegah file yang ada ditimpa. Secara default, Out-File menimpa file yang ada.
Get-Process | Out-File -FilePath .\Process.txt -NoClobber
Out-File : The file 'C:\Test\Process.txt' already exists.
At line:1 char:15
+ Get-Process | Out-File -FilePath .\Process.txt -NoClobber
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cmdlet Get-Process mendapatkan daftar proses yang berjalan di komputer lokal. Objek Proses dikirimkan alur ke cmdlet Out-File.
Out-File menggunakan parameter FilePath dan mencoba menulis ke file di direktori saat ini bernama Process.txt. Parameter NoClobber mencegah file ditimpa dan menampilkan pesan bahwa file sudah ada.
Contoh 3: Mengirim output ke file dalam format ASCII
Contoh ini menunjukkan cara mengodekan output dengan jenis pengodean tertentu.
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ascii -Width 50
cmdlet Get-Process mendapatkan daftar proses yang berjalan di komputer lokal. Objek Proses disimpan dalam variabel, $Procs.
Out-File menggunakan parameter FilePath dan membuat file di direktori saat ini bernama Process.txt. Parameter InputObject meneruskan objek proses dalam $Procs ke file Process.txt. Parameter Pengodean mengonversi output ke format ASCII. Parameter Lebar membatasi setiap baris dalam file menjadi 50 karakter sehingga beberapa data mungkin terpotong.
Contoh 4: Menggunakan penyedia dan mengirim output ke file
Contoh ini menunjukkan cara menggunakan cmdlet Out-File saat Anda tidak berada dalam drive penyedia FileSystem. Gunakan cmdlet Get-PSProvider untuk melihat penyedia di komputer lokal Anda. Untuk informasi selengkapnya, lihat tentang_Penyedia.
PS> Set-Location -Path Alias:
PS> Get-Location
Path
----
Alias:\
PS> Get-ChildItem | Out-File -FilePath C:\TestDir\AliasNames.txt
PS> Get-Content -Path C:\TestDir\AliasNames.txt
CommandType Name
----------- ----
Alias % -> ForEach-Object
Alias ? -> Where-Object
Alias ac -> Add-Content
Alias cat -> Get-Content
Perintah Set-Location menggunakan parameter Jalur untuk mengatur lokasi saat ini ke penyedia registri Alias:. Cmdlet Get-Location menampilkan jalur lengkap untuk Alias:.
Get-ChildItem mengirim objek ke bawah alur ke cmdlet Out-File.
Out-File menggunakan parameter FilePath untuk menentukan jalur lengkap dan nama file untuk output, C:\TestDir\AliasNames.txt. Cmdlet Get-Content menggunakan parameter Jalur dan menampilkan konten file di konsol PowerShell.
Contoh 5: Mengatur lebar output file untuk seluruh cakupan
Contoh ini menggunakan $PSDefaultParameterValues untuk mengatur parameter Width untuk semua pemanggilan Out-File dan operator pengalihan (> dan >>) ke 2000. Ini memastikan bahwa di mana saja dalam cakupan saat ini bahwa Anda mengeluarkan data yang diformat tabel ke file, PowerShell menggunakan lebar garis 2000 alih-alih lebar garis yang ditentukan oleh lebar konsol host PowerShell.
function DemoDefaultOutFileWidth() {
try {
$PSDefaultParameterValues['Out-File:Width'] = 2000
$logFile = "$PWD\logfile.txt"
Get-ChildItem Env:\ > $logFile
Get-Service -ErrorAction Ignore |
Format-Table -AutoSize |
Out-File $logFile -Append
Get-Process | Format-Table Id,SI,Name,Path,MainWindowTitle >> $logFile
}
finally {
$PSDefaultParameterValues.Remove('Out-File:Width')
}
}
DemoDefaultOutFileWidth
Untuk informasi selengkapnya tentang $PSDefaultParameterValues, lihat about_Preference_Variables.
Parameter
-Append
Menambahkan output ke akhir file yang ada.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Confirm
Meminta konfirmasi sebelum menjalankan cmdlet.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Cf |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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 program konsol. -
unicode: Mengode 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
Dimulai dengan PowerShell 7.4, Anda dapat menggunakan nilai
Nota
UTF-7* tidak lagi disarankan untuk digunakan. Sejak PowerShell 7.1, sebuah peringatan akan ditulis jika Anda menentukan utf7 untuk parameter Pengodean .
Properti parameter
| Jenis: | Encoding |
| Nilai default: | UTF8NoBOM |
| Nilai yang diterima: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | 1 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-FilePath
Menentukan jalur ke file output.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Jalur |
Kumpulan parameter
ByPath
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Force
Mengambil alih atribut baca-saja dan menimpa file baca-saja yang ada. Parameter Force tidak mengesampingkan pembatasan keamanan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-InputObject
Menentukan objek yang akan ditulis ke file. Masukkan variabel yang berisi objek atau ketik perintah atau ekspresi yang mendapatkan objek.
Properti parameter
| Jenis: | PSObject |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-LiteralPath
Menentukan jalur ke file output. Parameter LiteralPath digunakan persis seperti yang ditik. Karakter kartubebas tidak diterima. Jika jalur menyertakan karakter escape, bungkus jalur tersebut dalam tanda kutip tunggal. Tanda kutip tunggal memberi tahu PowerShell untuk tidak menginterpretasikan karakter apa pun sebagai urutan escape. Untuk informasi lebih lanjut, lihat about_Quoting_Rules.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | PSPath, LP |
Kumpulan parameter
ByLiteralPath
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-NoClobber
NoClobber mencegah file yang ada ditimpa dan menampilkan pesan bahwa file sudah ada. Secara default, jika file ada di jalur yang ditentukan, Out-File menimpa file tanpa peringatan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | NoOverwrite |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-NoNewline
Menentukan bahwa konten yang ditulis ke file tidak diakhir dengan karakter baris baru. Representasi string dari objek input digabungkan untuk membentuk output. Tidak ada spasi atau baris baru yang dimasukkan di antara string output. Tidak ada baris baru yang ditambahkan setelah string output terakhir.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-WhatIf
Menunjukkan apa yang akan terjadi ketika cmdlet dijalankan. Cmdlet tidak dijalankan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | wi |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Width
Menentukan jumlah maksimum karakter di setiap baris output. Karakter tambahan apa pun dipotong, tidak dibungkus. Jika parameter ini tidak digunakan, lebar ditentukan oleh karakteristik host. Default untuk konsol PowerShell adalah 80 karakter. Jika Anda ingin mengontrol lebar untuk semua pemanggilan Out-File serta operator pengalihan (> dan >>), atur $PSDefaultParameterValues['Out-File:Width'] = 2000 sebelum menggunakan Out-File.
Properti parameter
| Jenis: | Int32 |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
PSObject
Anda dapat menyalurkan objek apa pun ke cmdlet ini.
Output
None
Cmdlet ini tidak mengembalikan output.
Catatan
Objek input secara otomatis diformat seperti yang akan ada di terminal, tetapi Anda dapat menggunakan cmdlet Format-* untuk secara eksplisit mengontrol pemformatan output ke file. Misalnya: Get-Date | Format-List | Out-File out.txt
Untuk mengirim output perintah PowerShell ke cmdlet Out-File, gunakan alur. Atau, Anda dapat menyimpan data dalam variabel dan menggunakan parameter InputObject untuk meneruskan data ke cmdlet Out-File.
Out-File menyimpan data ke file tetapi tidak menghasilkan objek output apa pun ke alur.
PowerShell 7.2 menambahkan kemampuan untuk mengontrol bagaimana urutan escape ANSI dirender. Output yang didekorasi ANSI yang diteruskan ke Out-File dapat diubah berdasarkan pengaturan properti $PSStyle.OutputRendering. Untuk informasi selengkapnya, lihat about_ANSI_Terminals.