Powershell içinden hava durumuna bakın

Powershell’in eğlenceli dünyasından bir örnek daha yapalım istiyorum. Bu sefer yine aklıma gelen ve çalışınca mutlu oldugum script’lerden birini daha paylaşacağım sizlerle : )

Sıkça yaptığımız işerden biri de hava durumunu kontrol etmektir. Bu işi de otomatik hale getiremez miyim? Elbette getirebilirim! Bakalım nasıl?

Öncelikle daha önceki yazılarda belirttiğim gibi Powershell Script’lerinizin Powershell açıldığında otomatik yüklenmesini sağlamak için Powershell profilinize bu Script’lerin yolunu göstermelisiniz.

Daha önce yaptığım örneklerde aşağıdaki yol üzerinde bulunan Powershell Profili içerisine profile.ps1 isminde bir dosya oluşturmanızı ve scriptlerinizi bu dosya içerisine kopyalamanızı söylemiştim. Fakat birden çok script oldugunda dosya biraz karışık hale gelebilir. Bu sebeple daha iyi bir fikrim var!

Profile.ps1 dosyasına sadece Script’lerinizin bulunduğu yolu verelim ve o kendisi gidip her açıldığında o scriptleri kendisine yüklesin. Böylece profile.ps1 dosyası da hiç büyümesin ve anlaşılmaz hale gelmesin. Öncelikle bu işi halledelim sonrasında Hava Durumu Script’ini inceleyelim.

Öncelikle daha önce de belirttiğim gibi aşagıdaki yola gidelim. Bu yol yoksa kendimiz oluşturalım. Profile.ps1 dosyası yoksa onu da oluşturalım.


Sonra profile.ps1 dosyamızı açıp içerisine aşağıdaki kodu ekleyelim

Not: Eğer daha önceki makalede profile.ps1 dosyası içerisine sozluk kodlarını kopyalamışsanız lütfen önce bu kodları siliniz ve temiz bir profile.ps1 dosyanız oldugundan emin olunuz. Ardından aşağıdaki işlemleri uygulayınız.

# Powershell script lokasyonumuzu belirtiyoruz

$UserProfile = (Get-ChildItem Env:UserProfile).Value;

$ScriptFolder = “$UserProfileMy documentsWindowsPowerShell”;

#############################################

# Scripts lokasyonundaki butun scriptleri

# (profile.ps1 haric) profile icerisine

# yukluyoruz boylece scipt klasorundeki

# butun scriptler powershell her acildiginda

# yuklenmis ve calismaya hazir oluyor

#############################################

Get-ChildItem $ScriptFolder -name -include ‘*.ps1′ -exclude ‘profile.ps1′ | foreach { (. “$ScriptFolder$_”) };

Bu kod ile WindowsPowershell klasörü içerisine att???m ve daha sonra ataca??m bütün .ps1 uzant?l? Powershell Script’lerinin Powershell taraf?ndan otomatik olarak tan?nmas?n? sa?l?yorum. Bu i?lemi bir kereye mahsus olarak yapm?? olmam bu i?in en güzel taraf?. Daha sonra ise Powershell her aç?ld???nda otomatik olarak yüklenmesini istedi?im Script’leri ayn? klasör içerisine (WindowsPowershell) at?yorum.

Daha önceki makalemde kulland???m sozluk.ps1 dosyas?n? ve a?a??da payla?t???m hava.ps1 dosyas?n? bu klasör içerisine (WindowsPowershell) at?yorum.

?imdi de gelelim hava durumuna!

Hava.ps1 dosyas?n?n içeri?i ise ?öyle:

function hava($lokasyon){$ie2 = new-object -com “InternetExplorer.Application”

$ie2.navigate(”

http://www.dmi.gov.tr/tahmin/il-ve-ilceler.aspx?m=$lokasyon”)

start-sleep -s 3

write-host $lokasyon “icin hava durumu” -foregroundcolor “green”

write-host “Bugün ” $ie2.document.getElementById(“ctl00_mpBody_thmGun1″).innertext -foregroundcolor “Green”

write-host $lokasyon “için en düşük sicaklik” $ie2.document.getElementById(“ctl00_mpBody_thmMin1″).innertext “derece olacaktır.” -foregroundcolor “Yellow”

write-host $lokasyon “için en yüksek sıcaklık” $ie2.document.getElementById(“ctl00_mpBody_thmMax1″).innertext “derece olacaktır.” -foregroundcolor “Yellow”

write-host $lokasyon “için en düşük nem oran? %” $ie2.document.getElementById(“ctl00_mpBody_thmNemMin1″).innertext “olacaktır.” -foregroundcolor “Yellow”

write-host $lokasyon “için en yüksek nem oranı %” $ie2.document.getElementById(“ctl00_mpBody_thmNemMax1″).innertext “olacaktır.” -foregroundcolor “Yellow”

write-host $lokasyon “için rüzgar” $ie2.document.getElementById(“ctl00_mpBody_thmRuzgarHiz1″).innertext “km hızında esecektir.” -foregroundcolor “Yellow”

$ie2.quit()

}

Bunun kullanımı da oldukça kolay ve pratik.

Hava izmir


İşte bu kadar!

Günlük hayatımızda herkes için yararlı olacak diğer kullanışlı script’lerle yeniden beraber olmak üzere…

Tesekkürler,

BakiOnur

Leave a Reply