Пост нянавісці да Магутнага Шэла

Напісаў я неяк даўно адзін просты скрыпт, які выдаляе ў паказанай дырэкторыі ўсе паддырэкторыі з зададзенымі імёнамі:

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

Даўно ім не карыстаўся, а тут ён спатрэбіўся. Запускаю - нічога не выдаліў.

"WTF?", думаю. Пачаў капацца. Вадзіўся-важдаўся, усё перабраў, і спіс папярэдне стварыў, і імёны мяняў - усё роўна нічога не выдаляе. У рэшце рэшт у іх доку прачытаў: "Наогул-то, -Include глючыць, калі выкарыстоўваецца разам з -Recurse, так што юзайце кастыльную канструкцыю.":

Згодна з рэкорсам parametrа ў Remove-Item вы маеце асаблівую ўвагу, звязаны з гэтым выпадкам, выкарыстоўваючы дапаможны хлопец, каб атрымаць запатрабаваныя файлы, і будзе выкарыстоўвацца аператар pipeline, каб пачаць туды, каб пераадолець-Item.

Ну, добра, перапісаў з выкарыстаннем гэтага мыліца. Адзін хрэн - не выдаляе нічога. Больш за тое, Get-ChildItem с -Include вяртае пустэчу. Зноў, што я толькі не рабіў, як я толькі не перакручваўся з параметрамі - не працуе. Галоўнае, з -Exclude працуе, а з -Include ніяк. Цэлы дзень на гэта забіў: усё думаў, што недзе ў параметрах накасячыў, што не ўлічыў нейкі хітры нюанс. І што ў выніку аказалася? Паставіў іх PS7.1 – у ім зарабіла. У ім нават першы бескастыльны варыянт з выкарыстаннем толькі Выдаліць-пункт зарабіў. Увогуле, аказаўся іх баг.

Але намучыўшыся з іх Магутным Шэлам, я палез у Google пачытаць, чаму іх шелл мае такі зубаскрышальны сінтакс. Млін, яны яго пазіцыянуюць, як .NET для кансолі, але сінтаксам C# у іх нават не павее. Замест яго...

Увогуле, натыкнуўся на такі артыкул: "What I Hate About PowerShell". Як гаворыцца: «I couldn’t agree more.»

Падазраю, што каманда Магутнага Шэла — гэтае зборышча прыхільнікаў Bash’а.

- Давайце, нарэшце, зробім для Windows кансоль, у якой можна будзе пісаць складаныя скрыпты. А то наш cmd састарэў, ды так, што нам ужо трошачкі сорамна.
- Давайце! На аснове чаго будзем рабіць? У нас ужо ёсць VBScript, JScript. Нарэшце, у нас ёсць мовы для. NET: C#, VB. Можа, на C# зробім? У сэнсе, будзем выкарыстоўваць C# як мову для скрыптоў для нашай кансолі. Тым больш, мы ж хочам туды. NET класы падцягнуць.
- Яе, ну ты чэ, чувак, які C #? Сапраўдныя гікі юзаюць bash! Вось і мы давайце зробім bash для Windows. Пляваць, што сінтакс для bash пісаў, мабыць, натоўп закураных хіпстараў у далёкіх 1960-х. Увогуле, чым больш складана, тым лепш! Інтуітыўная зразумеласць - гэта для слабакоў! Падчас напісання скрыпту на нашай мове юзэр у абавязковым парадку павінен праклясці ўсё на свеце і вынайсці парачку новых лаянак. Толькі такая мова мае права на жыцьцё. Вунь, лінуксоіды ўсё жыццё так жывуць і атрымліваюць ад гэтага ўсяго невытлумачальны кайф. А мы чым горшыя?

Толькі зарэгістраваныя карыстачы могуць удзельнічаць у апытанні. Увайдзіце, Калі ласка.

Ці карыстаецеся вы PowerShell і задавальняе Ці ён вас?

  • 30,3%Не карыстаюся40

  • 29,6%Паспрабаваў - не спадабалася39

  • 23,5%Карыстаюся і ўсім задаволены31

  • 12,9%Карыстаюся, але не задаволены17

  • 3,8%Ура! Нарэшце я магу ў Windows юзать каханы bash!5

Прагаласавалі 132 карыстальніка. Устрымаліся 26 карыстальнікаў.

Крыніца: habr.com

Дадаць каментар