Biraz ortaya karışık Windows özellikleriyle başlayalım. Neden mi? Çünkü çoğu zaman bir script yazarken çok ufak ihtiyaçlarınız olur ve işin içinden çıkamazsınız. Saatler geçer ve siz daha ilk satırdasınızdır çünkü kafaya taktığınız o küçük bilgiye ulaşamamışsınızdır.
Sizi gayet iyi anlıyorum. Bunun için her makalemde araya yararlı küçük bilgiler sıkıştırmaya özen gösteriyorum. O halde gelin başlayalım.
Powershell ile 1’den 100 kadar sayıları bir çırpıda bir değişkenin içinde toplamak istiyorum. Sonra da bu sayıları tek tek çağırarak üzerinde işlem yapmak istiyorum. Nasıl yaparım?
Çok kolay
$sayilar=1..100
Gördüğünüz gibi Powershell’in hazır fonksiyon ve özellikleri sayesinde aslında bir çok şey hazır durumda. Siz sadece bunları iyi bir ahenk ile birleştirip script haline getireceksiniz. Peki devam edelim.
10 gün sonrasını nasıl bir değişken içine yazdırabilirim?
$tarih=(get-date).adddays(10)
Bir değişken içindeki harflerin sayısını nasıl bulabilirim?
"sdjqwjsdpqwdqwds".length
A harfinin rakamsal karşılığını (char) nasıl bulabilirim
[int][char]'a'
Powershell ekranının arka plan rengini nasıl değiştirebilirim?
$Host.UI.RawUI.BackgroundColor = "Blue"
Komut satırından Powershell scripti çapırmak istesem ne yapmam lazım?
'cmd.exe /c c:\Windows\system32\windowspowershell\v1.0\powershell.exe -command "& c:\BakiOnur\script1.ps1"'
Tamam biraz yararlı bilgiden sonra konumuza geri dönebiliriz.
Tüm uygulama geliştirme dillerinde olduğu gibi Powershell’de de veri ayıklama oldukça önemlidir. Farklı veri tiplerğine nasıl davranmanız gerektiğini iyi bilmek zaman kazandırır.
Az cümle çok örnek prensibiyle devam edelim.
$servisler=get-service
Şimdi burada $servisler isminde bir değişkenimiz oldu ve içinde de tüm servisler var.
Bunu biraz kuracalayalım bakalım.
Bunları siz de deneyin.
$servisler[0]
$servisler.count
$servisler[1].status
$servisler | where name -eq "netlogon"
$servisler | ft name, status
$birinciservisisinadi=$servisler[0].name
$birinciservisinadininilkharfi=$birinciservisisinadi[0]
Bu boyle uzar gider. Uzun ayıklama işlemlerini göz önünde bulundurarak mutlaka değişken kullanın. Daha sonra sadece bu değişkeni çağırarak ihtiyacınızı giderebilirsiniz. Mesela;
Tarihlerle biraz oynadım ve bir suru degiskenim oldu. Şimdi bunları da birleştirerek bir dosya yolu yapacagim. Oyle yaz bazen bir dosyayı o anki tarih ve saat ile kadetmek isteyebilirsiniz.
Vee sonuç
Bir get-date komutundan neler türettik değil mi? İşte bu yüzden very ayıklama çok önemlidir.
Sorular için bakionur@bakionur.com