Çı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 Format
ile 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-List
ve 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…
PowerShell