İlginizi Çekebilir
  1. Ana Sayfa
  2. Microsoft PowerShell
  3. Microsoft PowerShell – Importing Data – Bölüm 5

Microsoft PowerShell – Importing Data – Bölüm 5

Microsoft – Importing Data – Bölüm 5. Import işlemi dışındaki bir birimden (storage üzerindeki bir data ya da disk üzerindeki bir dosya vb..) belli formattaki datayı okuyup tekrar obje olarak Convert etmeyi sağlayan bir işlemdir. Burada dikkat edilmesi gereken önemli nokta belli formattaki dataların obje olarak Import edilecek olmasıdır.

Bahsi geçen objeler genellikle Pipeline içerisine konulup diğer komuta aktarılırlar.

Import işleminin efektif olması verinin formatı ile doğrudan alakalıdır. Örneğin CSV düz bir data yapısına sahiptir. Önce Property’ler ve bunlara ait değerler vardır. Bu sebeple kompleks bir data yapısı sunmaz. Buna karşın XML hiyerarşik kompleks bir data yapısına sahiptir ve datayı saklamakta daha etkin bir metot sunar.

PowerShell üzerinde Import kelimesi kullanıldığında basit olarak iki işlem yapılır.

1. Data PowerShell dışındaki birimden okunur.

2. Okunan data obje formatına dönüştürülür.

Aslında bu işlem Export komutu ile yapılan işlemin tam tersidir. (Hatırlarsanız Export işlemi datayı Export ederken aynı zamanda formatını da dönüştürmekteydi)

Örnek üzerinde bu durum inceleyelim.

Aşağıdaki komutu çalıştırıp ilk 10 servisi csv olarak export edelim.

Get-Service | select -First 10 | Export-Csv c:\users\firat\desktop\Servisler.csv


Resim-1

CSV dosyası açıldığında ilk satırda Convert edilen Type, ikinci satırda Property isimleri listelenir. Diğer satırlar ise Convert edilen objelere ait bilgileri barındırırlar.


Resim-2

Şimdi işlemi tam tersine çevirip elde ettiğimiz csv file üzerinden veriyi tekrar Import edelim.

Import ettiğimiz data tekrar objeye dönüşeceği için, üzerinde sort, select ve benzeri komutları çalıştırmayı deneyelim.

Aşağıdaki gibi csv Import işleminin ardından objeleri once sıralayalım, sonra da belirli Property’lerine göre ilk beşini listeleyelim.

Import-Csv c:\users\firat\desktop\Servisler.csv | Sort-Object -Descending | select -Property name,displayname,status -First 5


Resim-3

Görüldüğü gibi Import işleminin ardından veriler objeye dönüştürüldüğü için üzerlerinde sort,select ve benzeri komutlar sorunsuz şekilde çalıştırılabilirler.

Örneğin Import komutu yerine Get-Content komutu kullanılmış olsaydı bu komutların hiç birisi çalışmazdı.

Çünkü Get-Content komutu ile csv içerisindeki veri sanki notepad üzerinden raw data okunur gibi okunmuş olacaktı.

Örnek olarak PowerShell üzerinde komutumuzu aşağıdaki gibi çalıştıralım.

Get-Content c:\users\firat\desktop\Servisler.csv | Sort-Object -Descending | select -Property name,displayname,status -First 5


Resim-4

Görüldüğü üzere komut bu şekilde çalıştırıldığında hiçbir değer döndürmez. Bunun sebebi Data’nın raw içerik olarak alınmasıdır. Bunun yerine komut aşağıdaki şekilde revize edilirse istenilen sonuç alınır.

Get-Content c:\users\firat\desktop\Servisler.csv | ConvertFrom-Csv |Sort-Object -Descending | select -Property name,displayname,status -First 5


Resim-5

Bu komutta diğer komuttan farklı olarak ConvertFrom-CSV cmdlet’i kullanıldı. Bu cmdlet ile raw olarak alınan içerik Pipeline’a kullanılabilir obje olarak iletildi ve istenilen sonuç elde edildi.

Özetle Import-Csv , Get-Content ve ConvertFrom-Csv komutlarının birlikte yaptığı işi tek başına yapar. J Fakat Import-csv komutu diğer komutlardan daha hızlı sonuç verir.

Bir sonraki makalede görüşmek üzere.

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

Referanslar

www.mshowto.org

Microsoft DMOC

 

TAGs : PowerShell, , , , ,

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