Mighty Shell Nifrət Yazısı

Uzun müddət əvvəl müəyyən bir kataloqda verilmiş adlarla bütün alt kataloqları silən sadə bir skript yazdım:

Remove-Item * -Force -Recurse -Include name1,name2,name3 -ErrorAction SilentlyContinue

Çoxdandır istifadə etmirəm amma indi ehtiyacım var. Mən onu işə salıram - heç nə silinmir.

“WTF?”, məncə. qazmağa başladım. Mən skripka çaldım, hər şeyi gözdən keçirdim, əvvəlcədən siyahı yaratdım və adları dəyişdirdim - hələ də heç nə silinmir. Nəhayət, onların sənədində oxudum: "Əslində, -Include -Recurse ilə birlikdə istifadə edildikdə səhv olur, ona görə də qoltuqağacı konstruksiyasından istifadə edin.":

Remove-Item-dəki Recurse parametrinin məlum problemi olduğundan, bu misaldakı komanda istədiyiniz faylları əldə etmək üçün Get-ChildItem-dən istifadə edir və sonra onları Sil-Elementə ötürmək üçün boru kəməri operatorundan istifadə edir.

Yaxşı, yaxşı, bu qoltuqağacı istifadə edərək onu yenidən yazdım. Cəhənnəm bir razılaşma - heç nəyi silmir. Üstəlik, Get-ChildItem с -Daxil et boşluq qaytarır. Yenə nə etsəm də, parametrləri necə təhrif etsəm də, işləmədi. Əsas olan onunladır - İstisna işləyir, lakin ilə -Daxil et heç bir şəkildə. Bütün günü buna sərf etdim: parametrlərdə hardasa səhv saldığımı, hansısa çətin nüansı nəzərə almadığımı düşünürdüm. Və sonda nə oldu? Mən onları PS7.1-də quraşdırdım və işlədi. O, hətta yalnız istifadə edərək, ilk qoltuqmaqsız seçimi ehtiva edir Sil-Element qazandı. Ümumiyyətlə, onların səhvi olduğu ortaya çıxdı.

Lakin onların Mighty Shell-dən əziyyət çəkdiyim üçün mən Google-a getdim ki, onların qabığının niyə belə ağıllara durğunluq gətirən sintaksisi var. Lənət olsun, onlar onu konsol üçün .NET kimi yerləşdirirlər, lakin C# sintaksisinin iyini belə hiss etmirlər. Onun yerinə…

Hər halda, bu məqalə ilə qarşılaşdım: "PowerShell haqqında nifrət etdiyim şey". Necə deyərlər: "Daha razılaşa bilmədim."

Güman edirəm ki, Mighty Shell komandası bir dəstə Baş azarkeşdir.

- Nəhayət, Windows üçün mürəkkəb skriptlər yaza biləcəyiniz bir konsol hazırlayaq. Yoxsa, bizim cmd köhnəlib, o qədər ki, onsuz da bir az utanırıq.
- Gəlin! Nəyə əsaslanaraq edəcəyik? Bizdə artıq VBScript, JScript var. Nəhayət, .NET üçün dillərimiz var: C#, VB. Bəlkə bunu C#-da edə bilərik? Demək istəyirəm ki, biz konsolumuz üçün skript dili kimi C#-dan istifadə edəcəyik. Üstəlik, biz oraya .NET siniflərini əlavə etmək istəyirik.
- Yox, sən nə edirsən, dostum, nə C#? Əsl geeks bash istifadə edir! Beləliklə, Windows üçün bash edək. Bash üçün sintaksisin 1960-cı illərdə daşqalaq edilmiş hipsterlər izdihamı tərəfindən yazılmasına əhəmiyyət vermirəm. Ümumiyyətlə, nə qədər mürəkkəb, bir o qədər yaxşıdır! İntuitivlik zəiflər üçündür! Dilimizdə ssenari yazarkən istifadəçi dünyada olan hər şeyi söyməli, bir-iki yeni lənət sözü uydurmalıdır. Yalnız belə bir dilin yaşamaq hüququ var. Baxın, Linux insanları bütün həyatlarını belə yaşayır və bütün bunlardan izaholunmaz bir həyəcan alırlar. Niyə biz daha pisik?

Sorğuda yalnız qeydiyyatdan keçmiş istifadəçilər iştirak edə bilər. Daxil olunxahiş edirəm.

Siz PowerShell-dən istifadə edirsiniz və bundan rahatsınızmı?

  • 30,3%Mən 40 istifadə etmirəm

  • 29,6%Sınadım və bəyənmədim39

  • 23,5%Mən istifadə edirəm və hər şeydən razıyam31

  • 12,9%Mən istifadə edirəm, amma xoşbəxt deyiləm17

  • 3,8%Yaşasın! Nəhayət, Windows!5-də sevimli bash-dan istifadə edə bilərəm

132 istifadəçi səs verib. 26 istifadəçi bitərəf qalıb.

Mənbə: www.habr.com

Добавить комментарий