İlginizi Çekebilir
  1. Ana Sayfa
  2. Microsoft PowerShell
  3. Microsoft PowerShell – Formatting Output – B – Bölüm 13

Microsoft PowerShell – Formatting Output – B – Bölüm 13

Microsoft – Formatting Output – B – Bölüm 13. Daha önceki makalemde Select-Object komutu ile listelenen obje Property’lerine ait değerlerin n ve e Key’lerini kullanarak nasıl calculated Property’ler oluşturulduğunu anlatmıştım.

Ayrıntılı bilgi için aşağıdaki linki kullanabilirsiniz.

Format-Table komutu ile aynı zamanda aşağıdaki Key’ler kullanılarak komut çıktıları özelleştirilebilir.


Resim-1

Örnek olarak aşağıdaki komut baz alınırsa;

Get-Process |
Format-Table -Property Name,ID,@{n=’VM(MB)’;
e={$PSItem.VM / 1MB};
{0:N2};
align=’right’} –AutoSize

  1. FormatString yazılan String değerin formatını belirler. N2 virgülden sonra iki basamak olacağını belirtir. (Daha önce select komutu ile bu işlemi {0:N2} ile sağlamıştık)
  2. Align tabloyu verilen Left,Right ve Center değerlerine göre hizalar.
  3. Width tablodaki kolonların maksimum genişliklerini belirler.

 


Resim-2

Sorted and Grouped Tables

Format-Table komutunda –GroupBy isimli oldukça faydalı bir parametre bulunur. Bu parametre kullanılarak objeler istenilen parametrelere göre tablo içerisinde listelenebilir.

Örneğin servisler durumlarına göre gruplanmak istenirse komutu aşağıdaki gibi çalıştırmak gerekir.


Resim-3

Tabi burada durumlar sıralı olmadığı için gruplama işlemini her seferinde tekrarlayabilir. Bunu önlemek için öncelikle Sort komutu ile Status Property’sine göre gruplama yapmak gerekir. Bu sebeple komut aşağıdaki gibi değiştirilmelidir.


Resim-4


Resim-5

-GroupBy parametresi Format-Wide Format-List komutları tarafından da desteklenmektedir.

Select ve Format komutları fonksiyonel olarak aynı işi yapıyor gibi görünebilir. Zaten çoğu davranışları da birbirine benzerdir. İkisi de calculated Property’leri desteklemektedir.

Ancak burada dikkat edilecek nokta şudur;

  • Select-Object komutu kullanılıp elde edilen objeler pipe edilip bir sonraki komuta aktarılıp, objeler üzerinde sort,export,enumerate ve benzeri komutlar çalıştırılabilir. Yani objeler üzerinde işlem yapılmaya devam edilecek ise select-object komutu kullanılır.
  • Format-Table komutu ise objeler ile işlem yapma son aşamaya geldiğinde, sadece objelerin listelenmesi istenildiğinde kullanılacak komuttur.

 

Redirecting Output

Format komutu çıktısı diğer komut çıktılarından daha özeldir. Bu sebeple sadece birkaç komut, format komutlarından gelen çıktıyı kabul edebilir.

Örneğin aşağıdaki komut yanlış yazılmış bir komuttur. Genelde bu yazım hatasına sıkça rastlanır. Burada dikkat edilecek durum ConvertTo-HTML komutu format komutunun çıktısını kabul etmez. Komut çalışır ancak kullanılabilir data sunmaz.

Get-Process | Format-Table –Property Name,Status –AutoSize | ConvertTo-HTML | Out-File C:\Services.html


Resim-6


Resim-7

Yukarıdaki çıktıda da göründüğü gibi format komutu convertTo- ya da Export- komutları ile Pipe edilemez. Bunların yerine format komutu ile kullanılabilecek, çıktıyı yönlendirme komutları aşağıdaki gibidir.

  • Out-Host : Çıktı PowerShell ekranında görüntülenir. Her Pipeline’da Default olan davranışı sergiler.
  • Out-File : Komut çıktısı bir dosyaya yönlendirilir.
  • Out-Printer : Komut çıktısı printer’a yönlendirilir.

 

Out-File ve Out-Printer ile yönlendirilen komutlar, PowerShell konsolundaki çıktının aynısı olacak şekilde yönlendirilir. Bu komutlar sadece çıktıyı ekranda olduğu biçimiyle alırlar.

Komut aşağıdaki gibi çalıştırıldığında, örnek çıktı aşağıdaki gibi olur.


Resim-8


Resim-9

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs : PowerShell, , PowerShell komutlari, , , nasil yapılır,

Yorum Yap

Yazar Hakkında

Sakarya doğumludur. İstanbul Üniversitesi’nde Matematik/Fen ve Teknoloji öğretmenliğini bitirmiştir. Yüksek lisansını Sakarya Üniversitesi Bilgisayar Mühendisliği’nde yapmıştır. Bilişim sektöründe çeşitli firmalarda sistem ve network sorumlusu olarak çalışmıştır. Bazı kurumlarda sistem ve network üzerine uzmanlık eğitimleri vermiştir. Şu anda Netaş şirketinde kurumsal danışman olarak görev yapmaktadır. Microsoft System Center ürünleri, Powershell ve Azure teknolojileri ile ilgilenmektedir. 2016 yılında Microsoft tarafından Cloud and Datacenter alanında MVP unvanını almıştır.

Yorum Yap