Піст ненависті до Могутнього Шелла

Написав я якось давно один простий скрипт, який видаляє у зазначеній директорії всі піддиректорії із заданими іменами:

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

Давно не користувався ним, а тут він знадобився. Запускаю – нічого не видалив.

"WTF?", Думаю. Почав копатися. Вовтузився-возився, все перебрав, і список попередньо створив, і імена змінював - все одно нічого не видаляє. Зрештою в їхньому доку прочитав: "Взагалі-то, -Include глючить, коли використовується разом з -Recurse, так що юзайте милицю конструкцію.":

Тому, щоб змінити значення параметра в Remove-Item, ви знайдете значок, натисніть на цей випадок, використовуючи Get-ChildItem, щоб отримати захищені файли, і буде використовувати орієнтовний оператор, щоб перейти до Remove-Item.

Ну, гаразд, переписав з використанням цього милиця. Один хрін – не видаляє нічого. Більш того, Get-ChildItem с -Включати повертає порожнечу. Знову, що я тільки не робив, як я тільки не перекручувався з параметрами — не працює. Головне, з -Виключити працює, а з -Включати ніяк. Цілий день на це вбив: все думав, що десь у параметрах накосячив, що не врахував якийсь хитрий нюанс. І що зрештою виявилося? Поставив їх 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

Додати коментар або відгук