Out-File
Mengirim output ke file.
Sintaks
Out-File
[-FilePath] <string>
[[-Encoding] <Encoding>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Out-File
[[-Encoding] <Encoding>]
-LiteralPath <string>
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
Out-File
Cmdlet 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 dengan Out-File
tanpa parameter tambahan.
PowerShell 7.4 mengubah perilaku operator pengalihan saat digunakan untuk mengalihkan aliran stdout 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
buat 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
Get-Process
Cmdlet mendapatkan daftar proses yang berjalan di komputer lokal. Objek Proses dikirimkan alur ke Out-File
cmdlet. Out-File
menggunakan parameter FilePath dan membuat file di direktori saat ini bernama Process.txt. Get-Content
Perintah 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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Get-Process
Cmdlet mendapatkan daftar proses yang berjalan di komputer lokal. Objek Proses dikirimkan alur ke Out-File
cmdlet. 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
Get-Process
Cmdlet 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 $Procs
proses 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 Out-File
cmdlet saat Anda tidak berada di drive penyedia FileSystem . Get-PSProvider
Gunakan cmdlet untuk melihat penyedia di komputer lokal Anda. Untuk informasi selengkapnya, lihat about_Providers.
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 Alias:
registri . Get-Location
Cmdlet menampilkan jalur lengkap untuk Alias:
.
Get-ChildItem
mengirim objek ke bawah alur ke Out-File
cmdlet. Out-File
menggunakan parameter FilePath untuk menentukan jalur lengkap dan nama file untuk output, C:\TestDir\AliasNames.txt. Get-Content
Cmdlet 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 Width
parameter untuk semua pemanggilan Out-File
dan operartor 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
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.
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: | 1 |
Default value: | UTF8NoBOM |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Menentukan jalur ke file output.
Type: | String |
Aliases: | Path |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Mengambil alih atribut baca-saja dan menimpa file baca-saja yang ada. Parameter Force tidak mengambil alih pembatasan keamanan.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Menentukan objek yang akan ditulis ke file. Masukkan variabel yang berisi objek atau ketik perintah atau ekspresi yang mendapatkan objek.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Menentukan jalur ke file output. Parameter LiteralPath digunakan persis seperti yang ditik. Karakter kartubebas tidak diterima. 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 |
-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
timpa file tanpa peringatan.
Type: | SwitchParameter |
Aliases: | NoOverwrite |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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
.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
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 Format-*
cmdlet untuk secara eksplisit mengontrol pemformatan output ke file. Misalnya: Get-Date | Format-List | Out-File out.txt
Untuk mengirim output perintah PowerShell ke Out-File
cmdlet, gunakan alur. Atau, Anda dapat menyimpan data dalam variabel dan menggunakan parameter InputObject untuk meneruskan data ke Out-File
cmdlet.
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 Out-File
dapat diubah berdasarkan pengaturan $PSStyle.OutputRendering
properti. Untuk informasi selengkapnya, lihat about_ANSI_Terminals.