• powershell'de fonksiyonel programlama yapilari da oldugundan yazmasi kullanmasi oldukca keyiflidir. hicbir dile tam benzemediginden alismasi vakit alabilir. mesela bir dizinde iki gunden eski zip dosyalarin toplam boylarini hesaplamak icin:

    $toplam = (get-item d:\hede\*.zip | where { $_.lastwritetime -lt (get-date).adddays(-2) } | measure-object length -sum).sum

    dur acilimini da yazayim ogretici olsun:

    "get-item d:\hede\*.zip"

    tek basina butun zip dosyalarini donduren bir komut. bunu boruyla where'e baglayinca get-item'in dondurdugu her sey "where" filtresinden geciyor. adinin "get-item" olma sebebi dosya disinda registry gibi seylerle de calisabilmesi.

    "where { $_.lastwritetime -lt (get-date).adddays(-2) } "

    burada "$_" o sirada islenen nesne anlaminda ozel bir kod. $_.lastwritetime o nesnenin tarihi demek oluyor. -lt ise cogu programlama dilinde "<" olarak gormeye alistigimiz operator. <, > gibi karakterler baska isler icin kullanildigindan kiyaslamalar "-lt", "-gt", "-eq" gibi operatorlerle yapiliyor. hatta bu sekilde "-contains" ya da "-match" (regular expression match) gibi operatorler de kullanabiliyorsunuz.

    get-date o gunun tarihin donduren bir cmdlet. onu parantez icine alip ".adddays" ekleyince o tarih objesinin adddays method'unu cagirmis oluyoruz.

    kisaca bu where'den cikan liste sadece iki gunden eski zip'ler oluyor. bunlarin toplam boyunu cikarmak icin ise where'in ciktisini yine borudan gecirip measure-object'e pasliyoruz:

    "measure-object length -sum"

    bu da demek oluyor ki gelen listedeki objelerin "length" alanlarini topla. en sonunda da measure-object ciktiyi bir nesne olarak verdiginden ve biz bu nesnenin sadece "sum" property'si ile ilgilendigimizden her seyi parantez icine alip sonuna ".sum" ekliyoruz.
  • windows 10 ile gelen 5.0 sürümünde komut satırında sözdizimi renklendirmesine kavuşmuş. komutu yanlış yazınca rengi kırmızıya dönüyor, tırnağı kapamayı unutunca anlaşılıyor vs. güzel.
  • bulunduğunuz dizin ve altındaki tüm dizinlerdeki 1mb'tan büyük tüm jpg'leri %85 kaliteyle yeniden sıkıştırmak için:

    dir -recurse *.jpg | where { ($_.length / 1mb) -gt 1 } | foreach { & mogrify -quality 85% $_.fullname }

    böyle de şahanedir.

    not: bulunduğu yere yaptığından eski orjinallerini kaybeder. sistemde imagemagick yüklü olması gerekir. bu işlemlerin dakikası 1.85785tl'den ücretlendirilir. türksel bir hangar holding kuruluşudur. milli piyango'nun bazı kanuni esasları 34843.238238 maddeleri. olm burayı nasılsa okumuyolar yaz istediğini. lan dediğimi yazmasana! landfmöçç..2
  • güçlü olduğu kadar tehlikelidir de.

    mesela windows işletim sistemlerinde memory'den credential dump alarak sistem üzerinde o an veya bir süre önce oturum açmış (aslında oturum bilgisi hala memory'de duran) hesapların kullanıcı adı ve parolalarını plaintext olarak gösterebilen görece zararlı mimikatz gibi bir uygulamanın binary'sini diske yazmadan, şöyle bir powershell script ile aynı işi yapmanız mümkün.
  • hayat kurtaran bir gerec. bugun bir dizindeki butun dosyalarin icindeki ".wav" kismini kaldirmam gerekti. sunu yaziverdim:

    get-item * | % { rename-item $_.name ($_.name.replace(".wav","")) }
  • masmavi olmasi dusundurucu. gonderme mondermedir belki, bilmiyorum. bilgisayarcilarin da arada sirada gonderme yapmasi. bunun da dusundurmesi. yakismasi? bilinememesi.
  • yanlış yaptığı çok şey var, ama doğru yaptığı şeylerden biri de unix'teki gibi "~" işaretini kullanıcının kendi home path'i için kullanıyor olması. bu sayede bir folder'ı "/"a yaratmakla home path'e yaratmak arasında konfor farkı en aza iniyor. mkdir c:\tmp vs mkdir ~\tmp gibi. bu yarattığı alışkanlık vesilesiyle yedekleme ve kullanıcılar arası erişim izinleri konularında da daha az sıkıntı çıkmasını sağlıyor.
  • ls çalıştırabildiğiniz bir shell en azından. hala adam gibi içinden yazı kopyalayamayacğınız bir windows shell'i olmaması da cabası. başlat menüsünden çalıştırınca mavi arkaplanlı ve büyük, başlat->çalıştır->powershell yapınca siyah ve standart cmd ekranı boyutunda açılıyor.
hesabın var mı? giriş yap