Menggunakan perintah Format untuk mengubah tampilan output
PowerShell memiliki sekumpulan cmdlet yang memungkinkan Anda mengontrol bagaimana properti ditampilkan untuk objek tertentu. Nama semua cmdlet dimulai dengan kata kerja Format
. Mereka memungkinkan Anda memilih properti mana yang ingin Anda tampilkan.
Get-Command -Verb Format -Module Microsoft.PowerShell.Utility
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Format-Custom 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Hex 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-List 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Table 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Wide 6.1.0.0 Microsoft.PowerShell.Utility
Artikel ini menjelaskan Format-Wide
cmdlet , Format-List
, dan Format-Table
.
Setiap jenis objek di PowerShell memiliki properti default yang digunakan saat Anda tidak memilih properti untuk ditampilkan. Setiap cmdlet menggunakan parameter Properti yang sama untuk menentukan properti mana yang ingin Anda tampilkan. Karena Format-Wide
hanya menampilkan satu properti, parameter Propertinyahanya mengambil satu nilai, tetapi parameter properti dan Format-List
Format-Table
menerima daftar nama properti.
Dalam contoh ini, output Get-Process
default cmdlet menunjukkan bahwa kami memiliki dua instans Internet Explorer yang berjalan.
Get-Process -Name iexplore
Format default untuk objek Proses menampilkan properti yang diperlihatkan di sini:
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
32 25.52 10.25 13.11 12808 1 iexplore
52 11.46 26.46 3.55 21748 1 iexplore
Menggunakan Format-Wide untuk output item tunggal
Format-Wide
Cmdlet, secara default, hanya menampilkan properti default objek. Informasi yang terkait dengan setiap objek ditampilkan dalam satu kolom:
Get-Command -Verb Format | Format-Wide
Format-Custom Format-Hex
Format-List Format-Table
Format-Wide
Anda juga dapat menentukan properti non-default:
Get-Command -Verb Format | Format-Wide -Property Noun
Custom Hex
List Table
Wide
Mengontrol tampilan Format-Lebar dengan kolom
Format-Wide
Dengan cmdlet, Anda hanya dapat menampilkan satu properti pada satu waktu. Ini membuatnya berguna untuk menampilkan daftar besar dalam beberapa kolom.
Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex List
Table Wide
Menggunakan Format-Daftar untuk tampilan daftar
Format-List
Cmdlet menampilkan objek dalam bentuk daftar, dengan setiap properti berlabel dan ditampilkan pada baris terpisah:
Get-Process -Name iexplore | Format-List
Id : 12808
Handles : 578
CPU : 13.140625
SI : 1
Name : iexplore
Id : 21748
Handles : 641
CPU : 3.59375
SI : 1
Name : iexplore
Anda dapat menentukan properti sebanyak yang Anda inginkan:
Get-Process -Name iexplore | Format-List -Property ProcessName,FileVersion,StartTime,Id
ProcessName : iexplore
FileVersion : 11.00.18362.1 (WinBuild.160101.0800)
StartTime : 10/22/2019 11:23:58 AM
Id : 12808
ProcessName : iexplore
FileVersion : 11.00.18362.1 (WinBuild.160101.0800)
StartTime : 10/22/2019 11:23:57 AM
Id : 21748
Mendapatkan informasi terperinci menggunakan Format-List dengan wildcard
Format-List
Cmdlet memungkinkan Anda menggunakan kartubebas sebagai nilai parameter Propertinya. Ini memungkinkan Anda menampilkan informasi terperinci. Seringkali, objek menyertakan lebih banyak informasi daripada yang Anda butuhkan, itulah sebabnya PowerShell tidak menampilkan semua nilai properti secara default. Untuk memperlihatkan semua properti objek, gunakan Format-List -Property *
perintah . Perintah berikut menghasilkan lebih dari 60 baris output untuk satu proses:
Get-Process -Name iexplore | Format-List -Property *
Format-List
Meskipun perintah berguna untuk menampilkan detail, jika Anda menginginkan gambaran umum output yang mencakup banyak item, tampilan tabular yang lebih sederhana sering lebih berguna.
Menggunakan Format-Tabel untuk output tabular
Jika Anda menggunakan Format-Table
cmdlet tanpa nama properti yang ditentukan untuk memformat output Get-Process
perintah, Anda mendapatkan output yang sama persis seperti yang Anda lakukan tanpa Format
cmdlet. Secara default, PowerShell menampilkan objek Proses dalam format tabular.
Get-Service -Name win* | Format-Table
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running WinHttpAutoProx... WinHTTP Web Proxy Auto-Discovery Se...
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Manag...
Catatan
Get-Service
hanya tersedia di platform Windows.
Meningkatkan output Format-Tabel
Meskipun tampilan tabular berguna untuk menampilkan banyak informasi, mungkin sulit untuk menafsirkan apakah tampilan terlalu sempit untuk data. Dalam contoh sebelumnya, output dipotong. Jika Anda menentukan parameter AutoSize saat menjalankan Format-Table
perintah, PowerShell menghitung lebar kolom berdasarkan data aktual yang ditampilkan. Ini membuat kolom dapat dibaca.
Get-Service -Name win* | Format-Table -AutoSize
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running WinHttpAutoProxySvc WinHTTP Web Proxy Auto-Discovery Service
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Management)
Format-Table
Cmdlet mungkin masih memotong data, tetapi hanya terpotong di akhir layar.
Properti, selain yang terakhir ditampilkan, diberikan ukuran sebanyak yang mereka butuhkan agar elemen data terpanjang mereka ditampilkan dengan benar.
Get-Service -Name win* |
Format-Table -Property Name, Status, StartType, DisplayName, DependentServices -AutoSize
Name Status StartType DisplayName DependentServi
ces
---- ------ --------- ----------- --------------
WinDefend Running Automatic Windows Defender Antivirus Service {}
WinHttpAutoProxySvc Running Manual WinHTTP Web Proxy Auto-Discovery Service {NcaSvc, iphl…
Winmgmt Running Automatic Windows Management Instrumentation {vmms, TPHKLO…
WinRM Running Automatic Windows Remote Management (WS-Management) {}
Format-Table
Perintah mengasumsikan bahwa properti tercantum dalam urutan kepentingan. Cmdlet mencoba menampilkan properti yang paling dekat dengan awal sepenuhnya. Format-Table
Jika perintah tidak dapat menampilkan semua properti, perintah akan menghapus beberapa kolom dari tampilan. Anda dapat melihat perilaku ini di properti DependentServices contoh sebelumnya.
Membungkus output Format-Tabel dalam kolom
Anda dapat memaksa data panjang Format-Table
untuk dibungkus dalam kolom tampilannya menggunakan parameter Bungkus . Menggunakan parameter Bungkus mungkin tidak melakukan apa yang Anda harapkan, karena menggunakan pengaturan default jika Anda tidak juga menentukan UkuranOtomatis:
Get-Service -Name win* |
Format-Table -Property Name, Status, StartType, DisplayName, DependentServices -Wrap
Name Status StartType DisplayName DependentServi
ces
---- ------ --------- ----------- --------------
WinDefend Running Automatic Windows Defender Antivirus Service {}
WinHttpAutoProxySvc Running Manual WinHTTP Web Proxy Auto-Discovery Service {NcaSvc,
iphlpsvc}
Winmgmt Running Automatic Windows Management Instrumentation {vmms,
TPHKLOAD,
SUService,
smstsmgr…}
WinRM Running Automatic Windows Remote Management (WS-Management) {}
Menggunakan parameter Bungkus dengan sendirinya tidak memperlambat pemrosesan sangat banyak. Namun, menggunakan AutoSize untuk memformat daftar file rekursif dari struktur direktori besar dapat memakan waktu lama dan menggunakan banyak memori sebelum menampilkan item output pertama.
Jika Anda tidak khawatir tentang beban sistem, maka AutoSize berfungsi dengan baik dengan parameter Bungkus. Kolom awal masih menggunakan lebar sebanyak yang diperlukan untuk menampilkan item pada satu baris, tetapi kolom akhir dibungkus, jika perlu.
Catatan
Beberapa kolom mungkin tidak ditampilkan saat Anda menentukan kolom terluas terlebih dahulu. Untuk hasil terbaik, tentukan elemen data terkecil terlebih dahulu.
Dalam contoh berikut, kami menentukan properti terluas terlebih dahulu.
Get-Process -Name iexplore |
Format-Table -Wrap -AutoSize -Property FileVersion, Path, Name, Id
Bahkan dengan pembungkusan, kolom Id akhir dihilangkan:
FileVersion Path Nam
e
----------- ---- ---
11.00.18362.1 (WinBuild.160101.0800) C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE iex
plo
re
11.00.18362.1 (WinBuild.160101.0800) C:\Program Files\Internet Explorer\iexplore.exe iex
plo
re
Mengatur output tabel
Parameter lain yang berguna untuk kontrol output tabular adalah GroupBy. Daftar tabular yang lebih panjang khususnya mungkin sulit dibandingkan. Parameter GroupBy mengelompokkan output berdasarkan nilai properti. Misalnya, kita dapat mengelompokkan layanan menurut StartType untuk inspeksi yang lebih mudah, menghilangkan nilai StartType dari daftar properti:
Get-Service -Name win* | Sort-Object StartType | Format-Table -GroupBy StartType
StartType: Automatic
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Managem…
StartType: Manual
Status Name DisplayName
------ ---- -----------
Running WinHttpAutoProxyS… WinHTTP Web Proxy Auto-Discovery Serv…
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