Çıktı görünümünü değiştirmek için Format komutlarını kullanma
PowerShell, belirli nesneler için özelliklerin nasıl görüntüleneceğini denetlemenize olanak tanıyan bir dizi cmdlet'e sahiptir. Tüm cmdlet'lerin adları Format fiiliyle başlar. Hangi özellikleri göstermek istediğinizi seçmenize izin verirler.
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'deki her nesne türünün, görüntülenecek özellikleri seçmediğinizde kullanılan varsayılan özellikleri vardır. Her cmdlet, hangi özelliklerin görüntülenmesini istediğinizi belirtmek için aynı Özellik parametresini kullanır. Format-Wide yalnızca tek bir özelliği gösterdiğinden, Property parametresi yalnızca tek bir değer alır, ancak Format-List ve <'nin özellik parametreleriFormat-Table özellik adlarının bir listesini kabul eder.
Bu örnekte, Get-Process cmdlet'inin varsayılan çıktısı, Internet Explorer'ın iki örneğinin çalıştığını gösteriyor.
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
Tek öğeli çıktı için Format-Wide'ı kullanma
Format-Wide cmdlet'i varsayılan olarak bir nesnenin yalnızca 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 de belirtebilirsiniz:
Get-Command -Verb Format | Format-Wide -Property Noun
Custom Hex
List Table
Wide
Sütunla Format Genelinde ekranı kontrol etme
Format-Wide cmdlet'i ile aynı anda yalnızca tek bir özelliği görüntüleyebilirsiniz. Bu, büyük listelerin birden fazla sütunda görüntülenmesinde kullanışlıdır.
Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex List
Table Wide
Liste görünümü için Format-List'i kullanma
Format-List cmdlet'i, her özelliğin ayrı bir satırda etiketlenip görüntülendiği 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 ö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
Format-List'i joker karakterlerle kullanarak ayrıntılı bilgi alma
Format-List cmdlet'i, Property parametresinin değeri olarak joker karakter kullanmanıza olanak tanır. Bu, ayrıntılı bilgileri görüntülemenizi sağlar. Çoğu zaman nesneler 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 Format-List -Property * komutunu kullanın. Aşağıdaki komut, tek bir işlem için 60'tan fazla satır çıktı üretir:
Get-Process -Name iexplore | Format-List -Property *
Format-List komutu ayrıntıyı göstermek için yararlı olsa da, birçok öğeyi içeren çıktıya genel bir bakış istiyorsanız, daha basit bir tablo görünümü genellikle daha kullanışlıdır.
Tablo çıktısı için Format-Tablo kullanma
Get-Process komutunun çıktısını biçimlendirmek için hiçbir özellik adı belirtilmeden Format-Table cmdlet'ini kullanırsanız, < olmadan elde ettiğiniz çıktının tam olarak aynısını elde edersiniz.Biçim cmdlet'i. 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 mevcuttur.
Format-Tablo çıktısının iyileştirilmesi
Tablo görünümü birçok bilgiyi görüntülemek için yararlı olsa da, ekranın veriler için çok dar olup olmadığını yorumlamak zor olabilir. Önceki örnekte çıktı kesilmiştir. Format-Table komutunu çalıştırdığınızda AutoSize parametresini belirtirseniz PowerShell, görüntülenen gerçek verilere göre sütun genişliklerini hesaplar. Bu, sütunların okunabilir olmasını sağlar.
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'i yine de verileri kesebilir, ancak yalnızca ekranın sonunda keser. Son görüntülenenin dışındaki özelliklere, en uzun veri öğesinin doğru şekilde görüntülenmesi için ihtiyaç duydukları boyut kadar 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, başlangıca en yakın özellikleri tam olarak görüntülemeye çalışır. Format-Table komutu tüm özellikleri görüntüleyemiyorsa, bazı sütunları ekrandan kaldırır. Bu davranışı önceki DependentServices özelliği örneğinde görebilirsiniz.
Sütunlarda Format-Tablo çıktısını sarmalama
Sarma parametresini kullanarak, uzun Format-Table verilerinin kendi görüntü sütunu içinde sarılmasını sağlayabilirsiniz. Sarma parametresini kullanmak, Otomatik Boyutlandırma'yı da belirtmezseniz varsayılan ayarları kullanacağından beklediğiniz sonucu vermeyebilir:
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) {}
Sarma parametresinin tek başına kullanılması, işlemeyi çok fazla yavaşlatmaz. Ancak, büyük bir dizin yapısının özyinelemeli bir dosya listesini biçimlendirmek için Otomatik Boyutlandırma'nın kullanılması uzun zaman alabilir ve ilk çıktı öğelerini görüntülemeden önce çok fazla bellek kullanabilir.
Sistem yüküyle ilgilenmiyorsanız Otomatik Boyutlandırma, Sarma parametresiyle iyi çalışır. İlk sütunlar, öğeleri tek bir satırda görüntülemek için hâlâ gerektiği kadar genişlik kullanır, ancak gerekirse son sütun sarılır.
Not
Önce en geniş sütunları belirttiğinizde bazı sütunlar görüntülenmeyebilir. En iyi sonuçları elde etmek için önce en küçük veri öğelerini belirtin.
Aşağıdaki örnekte öncelikle en geniş özellikleri belirtiyoruz.
Get-Process -Name iexplore |
Format-Table -Wrap -AutoSize -Property FileVersion, Path, Name, Id
Sarmalamayla bile son Id 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 çıktısının düzenlenmesi
Tablolu çıktı kontrolüne yönelik bir başka yararlı parametre de GroupBy'dir. Özellikle daha uzun tablo listelerinin karşılaştırılması zor olabilir. GroupBy parametresi çıktıyı bir özellik değerine göre gruplandırır. Örneğin, daha kolay inceleme için hizmetleri StartType'a göre gruplandırabiliriz ve mülk listesinden StartType değerini çıkarabiliriz:
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…