Cuma Eğlencesi: Zamanlama Her Şeydir


Bugünün eğlencesi için sizi üzerinde çalıştığım bir PowerShell projesiyle tanıştırmak istiyorum. Bu Cuma Eğlencesi projelerinin çoğunda olduğu gibi bu da pek çığır açıcı olmayan bir şey ancak kullanımı eğlenceli olabilir ve umarım eğitimsel bir amaca hizmet eder. Elimde çok basit bir zamanlayıcıyla çalışmak üzere tasarlanmış çeşitli komutlar içeren MyTimer adında bir modül var. Aslında o kadar basit ki muhtemelen şaka yaptığımı düşüneceksiniz.

Komutlar son derece basit bir prensibe dayanmaktadır: İki olay arasında ne kadar zaman geçti? Bunu şimdi New-Timespan ile veya basitçe bir tarih saatini diğerinden çıkararak kolayca yapabilirsiniz. Modülüm mümkün olan en basit yaklaşımı benimsiyor: Geçerli tarih ve saati bir değişkene kaydedin ve hazır olduğunuzda bu değişkenden bir zaman aralığı hesaplayın. Komutlar bir "zamanlayıcı" nesnesine atıfta bulunsa da gerçekte süslü veya karmaşık bir şey yoktur. Bu, basitçe adlandırabileceğiniz, tarihsaat değerine sahip bir değişkendir.

Start-MyTimer -Name T1

.NET büyüsü ya da karmaşık bir şey yok. Modül komutları tüm bunları yönetmeyi kolaylaştırmak için tasarlanmıştır. Farklı aralıklarla durdurmak istemeniz durumunda aynı anda birden fazla zamanlayıcı bile oluşturabilirsiniz.

Start-MyTimer -Name T2,T3

Zamanlayıcılarınıza hangi adları verdiğinizi unutursanız (ki ben de öyle yaptım), Find-MyTimer komutunu kullanabilirsiniz.

Bir zamanlayıcıyı durdurmaya hazır olduğunuzda, bahse girerim hangi komutu kullanacağınızı tahmin edebilirsiniz.

Komutun yaptığı tek şey değişkeni bulmak ve bir zaman aralığı hesaplamaktı. İşleri kolaylaştırmak için değeri dize olarak almak için bir parametre bile ekledim.

Bir zamanlayıcıyı durdurduğunuzda orijinal değişken kaldırılır.

Son olarak, size o anda geçen süreyi gösterecek ancak onu "durdurmayacak" Get-MyTimer adında bir komut da ekledim. Bu, Find-MyTimer ile iyi çalışır.

Bu o kadar basit ki, isteminizi hemen geri alırsınız ve işinizin geri kalanını etkilemez. Sinir bozucu bir iş arkadaşınızdan telefon aldığınızı varsayalım. Bir zamanlayıcıyı başlatabilir ve 90 dakika sonra telefonu kapattığınızda zamanlayıcıyı durdurabilir ve tam olarak ne kadar süre meşgul olduğunuzu kaydedebilirsiniz.

Başka bir seçenek de zamanlayıcı değişkenlerinizi bir dosyaya aktarabilmeniz ve daha sonraki bir PowerShell oturumunda bunları yeniden içe aktarabilmenizdir. Bu, günlerce sürebilecek bir şeyi takip ederken kullanışlı olabilir. Aslında bunu bir geliştirme olarak düşünmem gerekebilir.

Modül şu anda https://github.com/jdhitsolutions/MyTimer adresindeki GitHub'da mevcuttur. Deneyip ne düşündüğünüzü bana bildirmenizi çok isterim. Hataları veya istekleri GitHub'a gönderin. Sonunda bunu muhtemelen PowerShell Galerisinde yayınlayacağım.

Ama şimdilik eğlenin ve tadını çıkarın!

İlgili makaleler