Çıkış görünümünü değiştirmek için Biçim komutlarını kullanma

PowerShell,belirli nesneler için özelliklerin nasıl görüntüleneceğini denetlemenize olanak sağlayan bir cmdlet kümesine sahiptir. Tüm cmdlet'lerin adları fiil Formatile başlar. Göstermek istediğiniz özellikleri seçmenize olanak verir.

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

Bu makalede , Format-Listve Format-Table cmdlet'leri açıklanmaktadırFormat-Wide.

PowerShell'deki her nesne türü, görüntülenecek özellikleri seçmediğinizde kullanılan varsayılan özelliklere sahiptir. Her cmdlet, hangi özelliklerin görüntülenmesini istediğinizi belirtmek için aynı Özellik parametresini kullanır. Yalnızca Format-Wide tek bir özelliği gösterdiğinden , Özellik parametresi yalnızca tek bir değer alır, ancak özellik parametrelerini Format-List alır ve Format-Table özellik adlarının listesini kabul eder.

Bu örnekte, cmdlet'in varsayılan çıktısı Get-Process internet explorer'ın iki örneğinin çalıştığını gösterir.

Get-Process -Name iexplore

İşlem nesneleri için varsayılan biçim burada gösterilen özellikleri görüntüler:

 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

Tek öğeli çıkış için Biçim Genelinde kullanma

Format-Wide Cmdlet varsayılan olarak yalnızca nesnenin varsayılan özelliğini görüntüler. Her nesneyle ilişkili bilgiler tek bir sütunda görüntülenir:

Get-Command -Verb Format | Format-Wide
Format-Custom          Format-Hex
Format-List            Format-Table
Format-Wide

Varsayılan olmayan bir özellik de belirtebilirsiniz:

Get-Command -Verb Format | Format-Wide -Property Noun
Custom                 Hex
List                   Table
Wide

Sütunla Biçim Genelinde görüntülemeyi denetleme

cmdlet'iyle Format-Wide aynı anda yalnızca tek bir özelliği görüntüleyebilirsiniz. Bu, büyük listeleri birden çok sütunda görüntülemek için kullanışlı hale getirir.

Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom                 Hex                  List
Table                  Wide

Liste görünümü için Biçim-Liste kullanma

Format-List Cmdlet bir nesneyi liste biçiminde görüntüler ve her özellik ayrı bir satırda etiketlenmiş ve görüntülenir:

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

İstediğiniz kadar özellik belirtebilirsiniz:

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

Joker karakterlerle Format-List kullanarak ayrıntılı bilgi alma

cmdlet'iFormat-List, Property parametresinin değeri olarak joker karakter kullanmanıza olanak tanır. Bu, ayrıntılı bilgileri görüntülemenizi sağlar. Nesneler genellikle ihtiyacınız olandan daha fazla bilgi içerir. Bu nedenle PowerShell varsayılan olarak tüm özellik değerlerini göstermez. Bir nesnenin tüm özelliklerini göstermek için komutunu kullanın Format-List -Property * . Aşağıdaki komut, tek bir işlem için 60'tan fazla çıkış satırı oluşturur:

Get-Process -Name iexplore | Format-List -Property *

Komut ayrıntıları göstermek için yararlı olsa Format-List da, birçok öğe içeren bir çıktıya genel bakış istiyorsanız, daha basit bir tablo görünümü genellikle daha kullanışlıdır.

Tablosal çıkış için Tablo Biçimlendir'i kullanma

Cmdlet'ini, komutun Format-Table çıkışını Get-Process biçimlendirmek için belirtilen özellik adları olmadan kullanırsanız, cmdlet'i olmadan Format tam olarak aynı çıktıyı alırsınız. PowerShell varsayılan olarak İşlem nesnelerini tablo biçiminde görüntüler.

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...

Not

Get-Service yalnızca Windows platformlarında kullanılabilir.

Format-Table çıkışını geliştirme

Tablosal görünüm çok fazla bilgi görüntülemek için yararlı olsa da, görüntü veri için çok darsa yorumlamak zor olabilir. Önceki örnekte çıkış kesilmiştir. Komutu çalıştırdığınızda Format-Table OtomatikLeştir parametresini belirtirseniz, PowerShell görüntülenen gerçek verilere göre sütun genişliklerini hesaplar. Bu, sütunları okunabilir hale getirir.

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 yine de verileri kesebilir, ancak yalnızca ekranın sonunda kesilir. En uzun veri öğelerinin doğru görüntülenmesi için son görüntülenenden başka özelliklere gereken boyut verilir.

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 komutu, özelliklerin önem sırasına göre listelendiğini varsayar. Cmdlet, en yakın başlangıçtaki özellikleri tam olarak görüntülemeye çalışır. Format-Table Komut tüm özellikleri görüntüleyemiyorsa, bazı sütunları ekrandan kaldırır. Bu davranışı önceki örnekte DependentServices özelliğinde görebilirsiniz.

Sütunlarda Biçim-Tablo çıkışını kaydırma

Wrap parametresini kullanarak uzun Format-Table verileri görüntüleme sütunu içinde kaydırmaya zorlayabilirsiniz. Otomatik Boyutlandırma'yı da belirtmezseniz varsayılan ayarları kullandığından Wrap parametresini kullanmak beklediğiniz gibi olmayabilir:

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) {}

Wrap parametresini tek başına kullanmak işlemeyi çok yavaşlatmıyor. Ancak, büyük bir dizin yapısının özyinelemeli dosya listesini biçimlendirmek için Otomatik Boyutlandırma'nın kullanılması uzun sürebilir ve ilk çıkış öğelerini görüntülemeden önce çok fazla bellek kullanabilir.

Sistem yüküyle ilgilenmiyorsanız, Otomatik Boyutlandırma Wrap parametresiyle iyi çalışır. İlk sütunlar yine de öğeleri tek satırda görüntülemek için gerektiği kadar genişlik kullanır, ancak gerekirse son sütun sarmalanır.

Not

İlk olarak en geniş sütunları belirttiğinizde bazı sütunlar görüntülenmeyebilir. En iyi sonuçlar için önce en küçük veri öğelerini belirtin.

Aşağıdaki örnekte öncelikle en geniş özellikleri belirteceğiz.

Get-Process -Name iexplore |
    Format-Table -Wrap -AutoSize -Property FileVersion, Path, Name, Id

Sarmalamada bile son Kimlik sütunu atlanır:

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

Tablo çıkışını düzenleme

Tablosal çıkış denetimi için bir diğer yararlı parametre de GroupBy'dir. Özellikle daha uzun tablosal dökümleri karşılaştırmak zor olabilir. GroupBy parametresi, çıkışı bir özellik değerine göre gruplandırır. Örneğin, daha kolay inceleme için, özellik listesinden StartType değerini atlayarak hizmetleri StartType'a göre gruplandırabiliriz:

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…