Çı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…