Mengalihkan output
PowerShell menyediakan beberapa cmdlet yang memungkinkan Anda mengontrol output data secara langsung. Cmdlet ini berbagi dua karakteristik penting.
Pertama, mereka umumnya mengubah data ke beberapa bentuk teks. Mereka melakukan ini karena mereka menghasilkan data ke komponen sistem yang memerlukan input teks. Ini berarti mereka perlu mewakili objek sebagai teks. Oleh karena itu, teks diformat seperti yang Anda lihat di jendela konsol PowerShell.
Kedua, cmdlet ini menggunakan kata kerja PowerShell Out karena mereka mengirim informasi dari PowerShell ke tempat lain.
Output konsol
Secara default, PowerShell mengirim data ke jendela host, yang persis seperti yang Out-Host
dilakukan cmdlet. Penggunaan utama untuk Out-Host
cmdlet adalah halaman. Misalnya, perintah berikut menggunakan Out-Host
untuk halaman output Get-Command
cmdlet:
Get-Command | Out-Host -Paging
Tampilan jendela host berada di luar PowerShell. Ini penting karena ketika data dikirim dari PowerShell, data tersebut benar-benar dihapus. Anda dapat melihat ini jika Anda mencoba membuat alur yang halaman datanya ke jendela host, lalu mencoba memformatnya sebagai daftar, seperti yang ditunjukkan di sini:
Get-Process | Out-Host -Paging | Format-List
Anda mungkin mengharapkan perintah menampilkan halaman informasi proses dalam format daftar. Sebagai gantinya, ini menampilkan daftar tabular default:
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
101 5 1076 3316 32 0.05 2888 alg
...
618 18 39348 51108 143 211.20 740 explorer
257 8 9752 16828 79 3.02 2560 explorer
...
<SPACE> next page; <CR> next line; Q quit
...
Out-Host
Cmdlet mengirimkan data langsung ke konsol, sehingga Format-List
perintah tidak pernah menerima apa pun untuk diformat.
Cara yang benar untuk menyusun perintah ini adalah dengan menempatkan Out-Host
cmdlet di akhir alur seperti yang ditunjukkan di bawah ini. Ini menyebabkan data proses diformat dalam daftar sebelum ditampilkan dan ditampilkan.
Get-Process | Format-List | Out-Host -Paging
Id : 2888
Handles : 101
CPU : 0.046875
Name : alg
...
Id : 740
Handles : 612
CPU : 211.703125
Name : explorer
Id : 2560
Handles : 257
CPU : 3.015625
Name : explorer
...
<SPACE> next page; <CR> next line; Q quit
...
Ini berlaku untuk semua cmdlet Out . Cmdlet Out harus selalu muncul di akhir alur.
Catatan
Semua cmdlet Keluar merender output sebagai teks, menggunakan pemformatan yang berlaku untuk jendela konsol, termasuk batas panjang baris.
Membuang output
Out-Null
Cmdlet dirancang untuk segera membuang input apa pun yang diterimanya. Ini berguna untuk membuang data yang tidak perlu yang Anda dapatkan sebagai efek samping menjalankan perintah. Saat mengetik perintah berikut, Anda tidak mendapatkan apa pun kembali dari perintah:
Get-Command | Out-Null
Out-Null
Cmdlet tidak membuang output kesalahan. Misalnya, jika Anda memasukkan perintah berikut, pesan ditampilkan yang memberi tahu Anda bahwa PowerShell tidak mengenali Is-NotACommand
:
PS> Get-Command Is-NotACommand | Out-Null
Get-Command : 'Is-NotACommand' isn't recognized as a cmdlet, function, operable program, or script file.
At line:1 char:12
+ Get-Command <<<< Is-NotACommand | Out-Null
Mencetak data
Out-Printer
hanya tersedia di platform Windows.
Anda dapat mencetak data menggunakan Out-Printer
cmdlet. Out-Printer
Cmdlet menggunakan printer default Anda jika Anda tidak menyediakan nama printer. Anda dapat menggunakan printer berbasis Windows dengan menentukan nama tampilannya. Tidak perlu pemetaan port printer apa pun atau bahkan printer fisik nyata.
Misalnya, jika Anda memiliki alat pencitraan dokumen Microsoft Office yang terinstal, Anda bisa mengirim data ke file gambar dengan mengetik:
Get-Command Get-Command | Out-Printer -Name 'Microsoft Office Document Image Writer'
Menyimpan data
Anda dapat mengirim output ke file alih-alih jendela konsol menggunakan Out-File
cmdlet. Baris perintah berikut mengirimkan daftar proses ke file C:\temp\processlist.txt
:
Get-Process | Out-File -FilePath C:\temp\processlist.txt
Hasil penggunaan Out-File
cmdlet mungkin bukan yang Anda harapkan jika Anda terbiasa dengan pengalihan output tradisional. Untuk memahami perilakunya, Anda harus mengetahui konteks tempat Out-File
cmdlet beroperasi.
Pada Window PowerShell 5.1, Out-File
cmdlet membuat file Unicode. Beberapa alat, yang mengharapkan file ASCII, tidak berfungsi dengan benar dengan format output default. Anda dapat mengubah format output default ke ASCII menggunakan parameter Pengodean :
Get-Process | Out-File -FilePath C:\temp\processlist.txt -Encoding ASCII
Out-file
memformat konten file agar terlihat seperti output konsol. Hal ini menyebabkan output dipotong sama seperti di jendela konsol dalam kebanyakan keadaan. Misalnya, jika Anda menjalankan perintah berikut:
Get-Command | Out-File -FilePath c:\temp\output.txt
Output akan terlihat seperti ini:
CommandType Name Definition
----------- ---- ----------
Cmdlet Add-Content Add-Content [-Path] <String[...
Cmdlet Add-History Add-History [[-InputObject] ...
...
Untuk mendapatkan output yang tidak memaksa pembungkus garis agar sesuai dengan lebar layar, Anda dapat menggunakan parameter Lebar untuk menentukan lebar garis. Karena Lebar adalah parameter bilangan bulat 32-bit, nilai maksimum yang dapat dimilikinya adalah 2147483647. Ketik berikut ini untuk mengatur lebar garis ke nilai maksimum ini:
Get-Command | Out-File -FilePath c:\temp\output.txt -Width 2147483647
Out-File
Cmdlet paling berguna ketika Anda ingin menyimpan output seperti yang akan ditampilkan di konsol.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk