Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 cmdlet Format-Wide
, 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 Properti hanya mengambil satu nilai, tetapi parameter Properti dari Format-List
dan Format-Table
menerima daftar nama properti.
Dalam contoh ini, output default cmdlet Get-Process
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
Cmdlet Format-Wide
, 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-Wide dengan kolom
Dengan cmdlet Format-Wide
, 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-List untuk tampilan daftar
cmdlet Format-List
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
Memperoleh informasi terperinci menggunakan Format-List dengan wildcard
Cmdlet Format-List
memungkinkan Anda menggunakan wildcard sebagai nilai untuk parameter Properti milik. 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 perintah Format-List -Property *
. Perintah berikut menghasilkan lebih dari 60 baris output untuk satu proses:
Get-Process -Name iexplore | Format-List -Property *
Meskipun perintah Format-List
berguna untuk menampilkan detail, jika Anda menginginkan gambaran umum output yang mencakup banyak item, tampilan tabular yang lebih sederhana sering lebih berguna.
Menggunakan Format-Table untuk output tabular
Jika Anda menggunakan cmdlet Format-Table
tanpa nama properti yang ditentukan untuk memformat output perintah Get-Process
, Anda mendapatkan output yang sama persis seperti yang Anda lakukan tanpa cmdlet Format
. 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...
Nota
Get-Service
hanya tersedia di platform Windows.
Meningkatkan output Format-Table
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 Anda menjalankan perintah Format-Table
, 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)
Cmdlet Format-Table
mungkin masih memotong data, tetapi hanya memotong 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) {}
Perintah Format-Table
mengasumsikan bahwa properti tercantum dalam urutan kepentingan. Cmdlet mencoba menampilkan sepenuhnya properti yang paling dekat dengan awal. Jika perintah Format-Table
tidak dapat menampilkan semua properti, perintah tersebut akan menghapus beberapa kolom dari tampilan. Anda dapat melihat perilaku ini pada contoh sebelumnya properti DependentServices.
Membungkus output Format-Table dalam kolom
Anda dapat memaksa data panjang Format-Table
untuk dibungkus dalam kolom tampilannya menggunakan parameter Bungkus. Menggunakan parameter Wrap mungkin tidak melakukan apa yang Anda harapkan, karena menggunakan pengaturan default jika Anda tidak juga menentukan AutoSize:
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. Namun, menggunakan AutoSize untuk memformat daftar file rekursif 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 berhasil 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.
Nota
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
Menata keluaran 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 dengan StartType untuk pemeriksaan 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…