Çıkış Görünümünü Değiştirmek İçin Biçimlendirme Komutları Kullanma

PowerShell 'in belirli nesneler için özelliklerin nasıl görüntülendiğini denetlemenize olanak tanıyan bir cmdlet kümesi vardır. Tüm cmdlet 'lerin adları fiil ile başlar Format . Göstermek istediğiniz özellikleri seçmenizi sağlar.

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-Wide Format-List ve Format-Table cmdlet 'leri açıklanmaktadır.

PowerShell içindeki her nesne türü, görüntülenecek özellikleri belirtmezseniz kullanılan varsayılan özelliklere sahiptir. Her cmdlet aynı zamanda hangi özellikleri göstermek istediğinizi belirtmek için aynı özellik parametresini kullanır. Format-WideYalnızca tek bir özelliği gösterdiği için, özelliği parametresi yalnızca tek bir değer alır, ancak özellik parametreleri Format-List ve Format-Table özellik adlarının bir listesini kabul eder.

Bu örnekte, cmdlet 'in varsayılan çıktısı, Get-Process çalışan Iki Internet Explorer örneğimiz olduğunu gösterir.

Get-Process -Name iexplore

İşlem nesnelerinin varsayılan biçimi 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

Single-Item çıktısı için Format-Wide kullanma

Format-WideCmdlet 'i varsayılan olarak yalnızca bir 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

Ayrıca, varsayılan olmayan bir özellik belirtebilirsiniz:

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

Sütun ile Format-Wide görüntülemeyi denetleme

Cmdlet 'i ile Format-Wide tek seferde yalnızca 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 Format-List kullanma

Format-ListCmdlet 'i, her bir özellik ayrı bir satırda etiketlenmiş ve görüntülenen bir liste biçiminde bir nesne görüntüler:

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 çok ö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

Format-ListCmdlet 'i, özellik parametresinin değeri olarak bir joker karakter kullanmanıza imkan sağlar. Bu, ayrıntılı bilgileri görüntülemenize olanak sağlar. Genellikle, nesneler gerekenden daha fazla bilgi içerir ve bu nedenle PowerShell tüm özellik değerlerini varsayılan olarak göstermez. Bir nesnenin tüm özelliklerini göstermek için Format-List -Property * komutunu kullanın. Aşağıdaki komut, tek bir işlem için 60 satırlık çıkış satırı üretir:

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

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

Tablosal çıkış için Format-Table kullanma

Format-TableKomutun çıkışını biçimlendirmek için hiçbir özellik adı belirtilmemiş cmdlet 'ini kullanırsanız Get-Process , bir cmdlet olmadan yaptığınız şekilde tam olarak aynı çıktıyı alırsınız Format . Varsayılan olarak, PowerShell işlem nesnelerini tablosal 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...

Format-Table çıkışını artırma (AutoSize)

Tablosal bir görünüm çok fazla bilgi görüntülemek için yararlı olsa da, görünümün veriler için çok dar olup olmadığını yorumlamak zor olabilir. Önceki örnekte, çıktı kesilir. Komutu çalıştırdığınızda AutoSize parametresini belirtirseniz Format-Table , PowerShell, görünen 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-TableCmdlet hala verileri kesiyor, ancak ekranın sonuna kadar keser. Son görüntülenen özellikler, en uzun veri öğelerinin doğru görüntülenmesi için ihtiyaç duydukları kadar çok boyut olarak 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-TableKomut, özelliklerin önem sırasına göre listelendiğini varsayar. Bu nedenle, en yakın özellikleri tam olarak görüntülemeyi dener. Format-TableKomut tüm özellikleri görüntüleyemiyorum, bazı sütunları ekranda kaldırır. Bu davranışı DependentServices özelliği önceki örnekte görebilirsiniz.

Sütunlardaki Format-Table çıktıyı kaydırma (sarmalama)

Format-Table Wrap parametresini kullanarak, görüntüleme sütunu içinde uzun verileri sarmaya zorlayabilirsiniz. AutoSize parametresini kullanmak beklediğiniz kadar yapamayabilir, çünkü otomatik AutoSize de belirtmezseniz varsayılan ayarları kullanır:

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 parametresinin kendisi tarafından kullanılması çok daha yavaş işlem yapmaz. Ancak, büyük bir dizin yapısının özyinelemeli bir dosya listesini biçimlendirmek için AutoSize kullanılması uzun zaman alabilir ve ilk çıkış öğelerini görüntülemeden önce çok fazla bellek kullanabilir.

Sistem yükü hakkında endişeleriniz yoksa, AutoSize parametresi ile iyi bir şekilde çalışma. İlk sütunlar, öğeleri tek bir satırda göstermek için gereken kadar genişliği kullanır, ancak gerekirse son sütun sarmalanır.

Not

Önce 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, önce en geniş özellikleri belirttik.

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

Kaydırmayla 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 (-GroupBy)

Tablo çıkış denetimi için başka bir yararlı parametre GroupBy'dir. Özellikle de daha uzun tablolu dökümler karşılaştırılabilmesi zor olabilir. GroupBy parametresi, bir özellik değerine göre çıktıyı gruplandırır. Örneğin, özellik listesinden StartType değerini atlayarak daha kolay İnceleme Için Hizmetleri StartType 'a göre gruplandırabilirsiniz:

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…