Windows Powershell’de çok karıştırılan 3 döngü ve örnekler

Powershell’de çok karıştırılan 3 döngü: Foreach ve For ve Foreach-Object

 

Foreach-Object

Bir kümedeki istisnasız tüm öğeler için aynı döngü içindeki komutların çalıştırılmasını sağlar.

Örneğin;

 

$_.macaddress

}

Yukarıdaki örnekte bilgisayarınızda bulunan tüm ağ aygıtları (Ethernet kartı, kabosuz bağdaştırıcı vs.) listeleniyor. Ancak listelenirken her bir aygıtın MAC adresini ekrana yazdırıyor.

Elbette amacım sadece bir liste içindeki tüm ekipmanların belirli öğelerini ekrana yazdırmak olsaydı hiç bu kadar uğraşmayacaktım ve Select-Object ya da Format-Table komutlarıyla ilgili süzme işlemini yapardım. Bakmaın siz bana, maksat Foreach-Object ile tüm öğelerin tek tek işlendiğini göstermek.

 

Foreach

Burada da farklı bir kullanıım sergiliyorum. Aslında yine amacım proses adedi kadar aynı işlemi yapmak. Burada “proses adedi kadar” deme görevi bana düşüyor. Yukarıdaki örnekte ise onu da poersell yapıyor, çnkü kaç adet proses olduğunu bulma yöntemini ona söylememe gerek yok.

$prosesler=get-process

ForEach($herbirproses in $prosesler){

“—————-”

“Process Adı: ” + $herbirproses.name

}

 

For

For kullanımında ise bir döngünün ne kadar süreceği benim belirlediğim kriterlere bağlı. Mesela 1′den başlayıp 10′a kadar diyebileceğim gibi istersem 0′dan başlayıp toplam servis adedine göre de diyebilirim. Burada sayaç mantığı daha ön planlda. Sayacımı nerde başlatıp nered durduracağıma kendimin karar vermesi gerekiyor.

Aşağıdaki örnekte önce servis sayısını öğreniyorum. Sonra sayacımı 0′dan başlatıp, birer birer artacak şekilde en son $servissayisindan 1 eksik duruma gelene kadar devam etmesini söylüyorum. Neden 1 eksik? Çünkü neredeyse tüm programlama dillerinde öğelerin sayıları 0′dan başlıyor.

 

cls

$servissayisi=(get-service).count

for($sayac=0;$sayac-le $servissayisi-1;$sayac++){

write-host $sayac (get-service)[$sayac]

 

}

Yazıyı Paylaş! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Technorati
  • Twitter
BakiOnur ()

Microsoft Most Valuable Professional (MVP 2009,2010,2011,2012,2013,2014,2015,2016 Current) Towershell.com Founder clouderz.com Founder Microsoft Certified Trainer (10 years in a row, current) Onur has been working in IT arena with more than 15 years of experience specifically in Windows Server, Exchange Server and Powershell and for the past 5 years in Cloud Technologies including Office 365, Azure and so on. He's authored Windows Server books and written more than 400 technical articles published on several communities. Some of his hundreds of Powershell tools and scripts has been published on Microsoft Script Center. Onur is also a 10-year MCT who has delivered more than 10.000 hours of training in Microsoft technologies. He has been to over 70 universities and presented several Microsoft technologies with highlighted topics. He graduated from Okan University Graduate School in Computer Engineering. He lives in London and is currently running his own business at Clouderz Ltd.

Windows