Format-Table

Memformat output sebagai tabel.

Sintaks

Format-Table
      [[-Property] <Object[]>]
      [-AutoSize]
      [-RepeatHeader]
      [-HideTableHeaders]
      [-Wrap]
      [-GroupBy <Object>]
      [-View <string>]
      [-ShowError]
      [-DisplayError]
      [-Force]
      [-Expand <string>]
      [-InputObject <psobject>]
      [<CommonParameters>]

Deskripsi

Format-Table Cmdlet memformat output perintah sebagai tabel dengan properti objek yang dipilih di setiap kolom. Jenis objek menentukan tata letak dan properti default yang ditampilkan di setiap kolom. Anda dapat menggunakan parameter Properti untuk memilih properti yang ingin Anda tampilkan.

PowerShell menggunakan pemformat default untuk menentukan bagaimana jenis objek ditampilkan. Anda dapat menggunakan .ps1xml file untuk membuat tampilan kustom yang menampilkan tabel output dengan properti tertentu. Setelah tampilan kustom dibuat, gunakan parameter Tampilan untuk menampilkan tabel dengan tampilan kustom Anda. Untuk informasi selengkapnya tentang tampilan, lihat about_Format.ps1xml.

Anda bisa menggunakan tabel hash untuk menambahkan properti terhitung ke objek sebelum menampilkannya dan menentukan judul kolom dalam tabel. Untuk menambahkan properti terhitung, gunakan parameter Properti atau GroupBy . Untuk informasi selengkapnya tentang tabel hash, lihat about_Hash_Tables.

Contoh

Contoh 1: Format host PowerShell

Contoh ini menampilkan informasi tentang program host untuk PowerShell dalam tabel.

Get-Host | Format-Table -AutoSize

Cmdlet Get-Host mendapatkan objek System.Management.Automation.Internal.Host.InternalHost yang mewakili host. Objek dikirim ke alur ke Format-Table dan ditampilkan dalam tabel. Parameter AutoSize menyesuaikan lebar kolom untuk meminimalkan pemotongan.

Contoh 2: Memformat proses menurut BasePriority

Dalam contoh ini, proses ditampilkan dalam grup yang memiliki properti BasePriority yang sama.

Get-Process | Sort-Object -Property BasePriority | Format-Table -GroupBy BasePriority -Wrap

Get-Process Cmdlet mendapatkan objek yang mewakili setiap proses di komputer dan mengirimkannya ke alur ke Sort-Object. Objek diurutkan dalam urutan properti BasePriority mereka.

Objek yang diurutkan dikirim ke alur ke Format-Table. Parameter GroupBy mengatur data proses ke dalam grup berdasarkan nilai properti BasePriority mereka. Parameter Bungkus memastikan bahwa data tidak terpotong.

Contoh 3: Memformat proses berdasarkan tanggal mulai

Contoh ini menampilkan informasi tentang proses yang berjalan pada komputer. Objek diurutkan dan Format-Table menggunakan tampilan untuk mengelompokkan objek berdasarkan tanggal mulainya.

Get-Process | Sort-Object StartTime | Format-Table -View StartTime

Get-Processmendapatkan objek System.Diagnostics.Process yang mewakili proses yang berjalan di komputer. Objek dikirim ke alur ke Sort-Object, dan diurutkan berdasarkan properti StartTime .

Objek yang diurutkan dikirim ke alur ke Format-Table. Parameter Tampilan menentukan tampilan StartTime yang ditentukan dalam file PowerShell DotNetTypes.format.ps1xml untuk objek System.Diagnostics.Process . Tampilan StartTime mengonversi setiap proses waktu mulai menjadi tanggal pendek lalu mengelompokkan proses berdasarkan tanggal mulai.

File DotNetTypes.format.ps1xml berisi tampilan Prioritas untuk proses. Anda dapat membuat file Anda sendiri format.ps1xml dengan tampilan yang dikustomisasi.

Contoh 4: Menggunakan tampilan kustom untuk output tabel

Dalam contoh ini, tampilan kustom menampilkan konten direktori. Tampilan kustom menambahkan kolom CreationTime ke output tabel untuk objek System.IO.DirectoryInfo dan System.IO.FileInfo yang dibuat oleh Get-ChildItem.

Tampilan kustom dalam contoh ini dibuat dari tampilan yang ditentukan dalam kode sumber PowerShell. Untuk informasi selengkapnya tentang tampilan dan kode yang digunakan untuk membuat tampilan contoh ini, lihat about_Format.ps1xml.

Get-ChildItem  -Path C:\Test | Format-Table -View mygciview

Directory: C:\Test

Mode                LastWriteTime              CreationTime         Length Name
----                -------------              ------------         ------ ----
d-----        11/4/2019     15:54       9/24/2019     15:54                Archives
d-----        8/27/2019     14:22       8/27/2019     14:22                Drawings
d-----       10/23/2019     09:38       2/25/2019     09:38                Files
-a----        11/7/2019     11:07       11/7/2019     11:07          11345 Alias.txt
-a----        2/27/2019     15:15       2/27/2019     15:15            258 alias_out.txt
-a----        2/27/2019     15:16       2/27/2019     15:16            258 alias_out2.txt

Get-ChildItem mendapatkan konten direktori saat ini, C:\Test. Objek System.IO.DirectoryInfo dan System.IO.FileInfo dikirim ke alur. Format-Tablemenggunakan parameter Tampilan untuk menentukan tampilan kustom mygciview yang menyertakan kolom CreationTime.

Output default Format-Table untuk Get-ChildItem tidak menyertakan kolom CreationTime .

Contoh 5: Menggunakan properti untuk output tabel

Contoh ini menggunakan parameter Properti untuk menampilkan semua layanan komputer dalam tabel dua kolom yang memperlihatkan properti Nama dan DependentServices.

Get-Service | Format-Table -Property Name, DependentServices

Get-Service mendapatkan semua layanan di komputer dan mengirim objek System.ServiceProcess.ServiceController ke bawah alur. Format-Tablemenggunakan parameter Properti untuk menentukan bahwa properti Nama dan DependentServices ditampilkan dalam tabel.

Nama dan DependentServices adalah dua properti jenis objek. Untuk melihat semua properti: Get-Service | Get-Member -MemberType Properties.

Contoh 6: Memformat proses dan menghitung waktu berjalannya

Contoh ini menampilkan tabel dengan nama proses dan total waktu berjalan untuk proses notepad komputer lokal. Total waktu berjalan dihitung dengan mengurangi waktu mulai setiap proses dari waktu saat ini.

Get-Process notepad |
  Format-Table ProcessName, @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}

ProcessName TotalRunningTime
----------- ----------------
notepad     03:20:00.2751767
notepad     00:00:16.7710520

Get-Processmendapatkan semua proses notepad komputer lokal dan mengirim objek ke bawah alur. Format-Table menampilkan tabel dengan dua kolom: ProcessName, Get-Process properti, dan TotalRunningTime, properti terhitung.

Properti TotalRunningTime ditentukan oleh tabel hash dengan dua kunci, Label dan Ekspresi. Kunci Label menentukan nama properti. Kunci Ekspresi menentukan perhitungan. Ekspresi mendapatkan properti StartTime dari setiap objek proses dan menguranginya dari hasil Get-Date perintah, yang mendapatkan tanggal dan waktu saat ini.

Contoh 7: Memformat proses Notepad

Contoh ini digunakan Get-CimInstance untuk mendapatkan waktu berjalan untuk semua proses notepad di komputer lokal. Anda dapat menggunakan Get-CimInstance dengan parameter ComputerName untuk mendapatkan informasi dari komputer jarak jauh.

$Processes = Get-CimInstance -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{
    Label = "Total Running Time"
    Expression={(Get-Date) - $_.CreationDate}
}

ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922

Get-CimInstancemendapatkan instans kelas Win32_Process WMI yang menjelaskan semua proses komputer lokal bernama notepad.exe. Objek proses disimpan dalam $Processes variabel .

Objek proses dalam $Processes variabel dikirim ke alur ke Format-Table, yang menampilkan properti ProcessName dan properti terhitung baru, Total Waktu Berjalan.

Perintah menetapkan nama properti terhitung baru, Total Waktu Berjalan, ke kunci Label . Blok skrip kunci Ekspresi menghitung berapa lama proses telah berjalan dengan mengurangi tanggal pembuatan proses dari tanggal saat ini. Get-Date Cmdlet mendapatkan tanggal saat ini. Tanggal pembuatan dikurangi dari tanggal saat ini. Hasilnya adalah nilai Total Waktu Berjalan.

Contoh 8: Pemecahan masalah kesalahan format

Contoh berikut menunjukkan hasil penambahan parameter DisplayError atau ShowError dengan ekspresi.

Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError

DayOfWeek  $_ / $null
--------- ------------
Wednesday #ERR

Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError

DayOfWeek  $_ / $null
--------- ------------
Wednesday

InvalidArgument: Failed to evaluate expression " $_ / $null ".

Parameter

-AutoSize

Menunjukkan bahwa cmdlet menyesuaikan ukuran kolom dan jumlah kolom berdasarkan lebar data. Secara default, ukuran dan angka kolom ditentukan oleh tampilan.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayError

Menunjukkan bahwa cmdlet menampilkan kesalahan pada baris perintah. Parameter ini dapat digunakan sebagai bantuan penelusuran kesalahan saat Anda memformat ekspresi dalam Format-Table perintah dan perlu memecahkan masalah ekspresi.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Expand

Menentukan format objek koleksi dan objek dalam koleksi. Parameter ini dirancang untuk memformat objek yang mendukung antarmuka ICollection (System.Collections). Nilai defaultnya adalah EnumOnly. Nilai yang dapat diterima untuk parameter ini adalah sebagai berikut:

  • EnumOnly: Menampilkan properti objek dalam koleksi.
  • CoreOnly: Menampilkan properti objek koleksi.
  • Keduanya: Menampilkan properti objek koleksi dan properti objek dalam koleksi.
Type:String
Accepted values:CoreOnly, EnumOnly, Both
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Menunjukkan bahwa cmdlet mengarahkan cmdlet untuk menampilkan semua informasi kesalahan. Gunakan dengan parameter DisplayError atau ShowError . Secara default, ketika objek kesalahan ditulis ke kesalahan atau menampilkan aliran, hanya beberapa informasi kesalahan yang ditampilkan.

Juga diperlukan saat memformat jenis .NET tertentu. Untuk informasi selengkapnya, lihat bagian Catatan.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupBy

Menentukan output yang diurutkan dalam tabel terpisah berdasarkan nilai properti. Misalnya, Anda dapat menggunakan GroupBy untuk mencantumkan layanan dalam tabel terpisah berdasarkan statusnya.

Masukkan ekspresi atau properti. Parameter GroupBy mengharapkan objek diurutkan. Sort-Object Gunakan cmdlet sebelum menggunakan Format-Table untuk mengelompokkan objek.

Nilai parameter GroupBy dapat menjadi properti terhitung baru. Properti terhitung dapat berupa blok skrip atau tabel hash. Pasangan kunci-nilai yang valid adalah:

  • Nama (atau Label) - <string>
  • Ekspresi - <string> atau <script block>
  • FormatString - <string>

Untuk informasi selengkapnya, lihat about_Calculated_Properties.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HideTableHeaders

Menghilangkan judul kolom dari tabel.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Menentukan objek yang akan diformat. 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

-Property

Menentukan properti objek yang muncul dalam tampilan dan urutan munculnya. Ketik satu atau beberapa nama properti, dipisahkan oleh koma, atau gunakan tabel hash untuk menampilkan properti terhitung. Kartubebas diizinkan.

Jika Anda menghilangkan parameter ini, properti yang muncul di tampilan bergantung pada properti objek pertama. Misalnya, jika objek pertama memiliki PropertyA dan PropertyB tetapi objek berikutnya memiliki PropertyA, PropertyB, dan PropertyC, maka hanya header PropertyA dan PropertyB yang ditampilkan.

Parameter Properti bersifat opsional. Anda tidak dapat menggunakan parameter Properti dan Tampilan dalam perintah yang sama.

Nilai parameter Properti dapat menjadi properti terhitung baru. Properti terhitung dapat berupa blok skrip atau tabel hash. Pasangan kunci-nilai yang valid adalah:

  • Nama (atau Label) <string>
  • Ekspresi - <string> atau <script block>
  • FormatString - <string>
  • Lebar - <int32> - harus lebih besar dari 0
  • Perataan - nilai dapat berupa Left, Center, atau Right

Untuk informasi selengkapnya, lihat about_Calculated_Properties.

Type:Object[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-RepeatHeader

Mengulangi menampilkan header tabel setelah setiap layar penuh. Header berulang berguna ketika output disalurkan ke pager seperti less atau atau more halaman dengan pembaca layar.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ShowError

Parameter ini mengirimkan kesalahan melalui alur. Parameter ini dapat digunakan sebagai bantuan penelusuran kesalahan saat Anda memformat ekspresi dalam Format-Table perintah dan perlu memecahkan masalah ekspresi.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

Dimulai di PowerShell 6, tampilan default ditentukan dalam kode sumber PowerShell C# . File *.format.ps1xml dari PowerShell 5.1 dan versi yang lebih lama tidak ada di PowerShell 6 dan versi yang lebih baru.

Parameter Tampilan memungkinkan Anda menentukan format alternatif atau tampilan kustom untuk tabel. Anda bisa menggunakan tampilan PowerShell default atau membuat tampilan kustom. Untuk informasi selengkapnya tentang cara membuat tampilan kustom, lihat about_Format.ps1xml.

Tampilan alternatif dan kustom untuk parameter Tampilan harus menggunakan format tabel, jika tidak, Format-Table gagal. Jika tampilan alternatif adalah daftar, gunakan Format-List cmdlet . Jika tampilan alternatif bukan daftar atau tabel, gunakan Format-Custom cmdlet .

Anda tidak dapat menggunakan parameter Properti dan Tampilan dalam perintah yang sama.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Wrap

Menampilkan teks yang melebihi lebar kolom pada baris berikutnya. Secara default, teks yang melebihi lebar kolom dipotong.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

PSObject

Anda dapat menyalurkan objek apa pun ke cmdlet ini.

Output

Microsoft.PowerShell.Commands.Internal.Format

Cmdlet ini mengembalikan objek format yang mewakili tabel.

Catatan

PowerShell menyertakan alias berikut untuk Format-Table:

  • Semua platform:
    • ft

PowerShell 7.2 memperkenalkan fitur baru untuk mewarnai output. Warna dapat dikelola menggunakan $PSStyle variabel otomatis. Properti $PSStyle.Formatting.TableHeader menentukan warna yang digunakan untuk header tabel yang ditampilkan oleh Format-Table. Untuk informasi selengkapnya tentang pengaturan ini, lihat about_ANSI_Terminals.

Jika Anda ingin menggunakan Format-Table dengan parameter Properti, Anda perlu menyertakan parameter Paksa dalam salah satu kondisi berikut: