Mighty Shell nafrat posti

Ko'p vaqt oldin men oddiy skriptni yozganman, u ko'rsatilgan katalogdagi nomlari bilan barcha pastki kataloglarni o'chirib tashladi:

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

Men uni anchadan beri ishlatmadim, lekin endi menga kerak edi. Men uni ishga tushiraman - hech narsa o'chirilmaydi.

"WTF?", menimcha. Men qazishni boshladim. Men skripka qildim, hamma narsani ko'zdan kechirdim, oldindan ro'yxat tuzdim va nomlarni o'zgartirdim - hali ham hech narsa o'chirilmadi. Nihoyat, ularning hujjatida men o'qiyman: "Aslida, -Include -Recurse bilan birgalikda ishlatilsa, buggy bo'ladi, shuning uchun tayoq konstruktsiyasidan foydalaning.":

Remove-Item-dagi Recurse parametri ma'lum muammoga ega bo'lganligi sababli, ushbu misoldagi buyruq kerakli fayllarni olish uchun Get-ChildItem-dan foydalanadi va keyin ularni Remove-Item-ga o'tkazish uchun quvur liniyasi operatoridan foydalanadi.

Mayli, men uni bu tayoqcha yordamida qayta yozdim. Bitta do'zax - bu hech narsani o'chirmaydi. Bundan tashqari, Get-ChildItem с - O'z ichiga bo'shliqni qaytaradi. Shunga qaramay, men nima qilgan bo'lsam ham, parametrlarni qanday buzgan bo'lsam ham, u ishlamadi. Asosiysi bilan - Chiqaring ishlaydi, lekin bilan - O'z ichiga bo'lishi mumkin emas. Men butun kunimni bunga sarfladim: men parametrlarimda biron bir narsani buzganman, qandaydir nozik nuanslarni hisobga olmaganman deb o'yladim. Va oxirida nima bo'ldi? Men ularni PS7.1 ga o'rnatdim va u ishladi. U hatto birinchi qo'ltiqsiz variantni ham o'z ichiga oladi Elementni olib tashlash erishgan. Umuman olganda, bu ularning xatosi bo'lib chiqdi.

Lekin ularning Mighty Shell bilan qiynalganidan so'ng, men Google'ga ularning qobig'i nima uchun bunday aqlga sig'maydigan sintaksisga ega ekanligini o'qish uchun bordim. Jin ursin, ular uni konsol uchun .NET sifatida joylashtiradilar, lekin ular C# sintaksisini ham hidlamaydilar. Uning oʻrniga…

Qanday bo'lmasin, men ushbu maqolaga duch keldim: "PowerShell haqida nima yomon ko'raman". Ular aytganidek: "Men ko'proq rozi bo'lolmadim."

Men Mighty Shell jamoasi Bash muxlislari guruhi ekanligiga shubha qilaman.

- Keling, nihoyat, murakkab skriptlarni yozishingiz mumkin bo'lgan Windows uchun konsol yarataylik. Aks holda, bizning cmd eskirgan, shuning uchun biz allaqachon biroz uyalamiz.
- Kelinglar! Nimaga asoslanib, biz nima qilamiz? Bizda allaqachon VBScript, JScript mavjud. Nihoyat, bizda .NET uchun tillar mavjud: C#, VB. Balki biz buni C# da qila olamizmi? Aytmoqchimanki, biz konsolimiz uchun skript tili sifatida C# dan foydalanamiz. Bundan tashqari, biz u erda .NET sinflarini qo'shmoqchimiz.
- Yo'q, nima qilyapsan, do'stim, nima C#? Haqiqiy geeks bashdan foydalanadi! Shunday qilib, keling, Windows uchun bash yarataylik. Bash sintaksisi 1960-yillarda toshbo'ron qilingan hipsterlar olomoni tomonidan yozilganiga ahamiyat bermayman. Umuman olganda, qanchalik murakkab bo'lsa, shuncha yaxshi! Intuitivlik zaiflar uchundir! Tilimizda skript yozishda foydalanuvchi dunyodagi hamma narsani la'natlashi va bir-ikkita yangi la'nat so'zlarini o'ylab topishi kerak. Faqat shunday til yashash huquqiga ega. Qarang, Linux odamlari butun umri shu tarzda yashaydi va bundan tushunib bo'lmas hayajonga ega bo'ladi. Nega biz bundan ham yomonroqmiz?

So'rovda faqat ro'yxatdan o'tgan foydalanuvchilar ishtirok etishlari mumkin. tizimga kirishiltimos.

Siz PowerShell-dan foydalanasizmi va u sizga qulaymi?

  • 30,3%Men 40 dan foydalanmayman

  • 29,6%Men sinab ko'rdim va uni yoqtirmadim39

  • 23,5%Men undan foydalanaman va hamma narsadan mamnunman31

  • 12,9%Men undan foydalanaman, lekin xursand emasman17

  • 3,8%Xayr! Nihoyat, men o'zimning sevimli bash-ni Windows!5 da ishlata olaman

132 foydalanuvchi ovoz berdi. 26 nafar foydalanuvchi betaraf qoldi.

Manba: www.habr.com

a Izoh qo'shish