Bir programcı projesi ile ilgili çalışmalarını yapmaya başlar önce bir sınıf yazar ve bu sınıfı class1.pas ismiyle saklar sonra başka bir projedede farklı bir işi yapacak olan aynı isimde bir dosya yazar. Sonra gün gelir aynı isimdeki dosyaları aynı proje klasöründe görmeye başlar. İşler git gide dahada karışır. PowerShell ile yazacağımız tek satırlık bir script ile aynı ismi verdiğimiz dosyaları görebiliriz. Bu kodu Başlat -> Çalıştır ekranına PowerShell yazarak açacağınız PowerShell komut arayüzene yazarak çalıştırabilirsiniz.
İşte bahsettiğimiz kod
dir d:\projeler -Filter *.pas -Recurse | group name | where {$_.Count -gt 1} | % {$_.group | foreach{ $_.fullname }}
Burda Filter parametresi ile sadece .pas uzantılı dosyaları alıyoruz. Recurse parametresi ise tüm alt klasörleri ile birlikte verdiğimiz klasörü taramak için.
Collection lar ile işlem yaparken gruplamamız gerekirse group-object cmdlet kullanılıyor. Yukardaki örnekte "Group Name" komutu pipeline ile kendisine gelen veriyi Name property sine göre grupluyor.
Collection lar ile işlem yaparken arama ,filtreleme yapmak gerekirse where-object cmdlet kullanılıyor. Yukardaki örnekte "where {$_.Count -gt 1}" where komutu pipeline ile kendisine gelen verinin her bir elemanını kontrol ederek Count propery değeri 1 den büyük olanları dönderiyor.
No comments yet.
RSS feed for comments on this post. TrackBack URL