Русский
Русский
English
Статистика
Реклама

Пост ненависти к Могучему Шеллу

Написал я как-то давно один простой скрипт, удаляющий в указанной директории все поддиректории с заданными именами:
Remove-Item * -Force -Recurse -Include name1,name2,name3 -ErrorAction SilentlyContinue

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

WTF, думаю. Стал копаться. Возился-возился, всё перебрал, и список предварительно создал, и имена менял всё равно ничего не удаляет. В конце-концов в их доке прочитал: Вообще-то, -Include глючит, когда используется вместе с -Recurse, так что юзайте костыльную конструкцию.:
Because the Recurse parameter in Remove-Item has a known issue, the command in this example uses Get-ChildItem to get the desired files, and then uses the pipeline operator to pass them to Remove-Item.

Ну, ладно, переписал с использованием данного костыля. Один хрен не удаляет ничего. Более того, Get-ChildItem с -Include возвращает пустоту. Опять что я только не делал, как я только не извращался с параметрами не работает. Главное, с -Exclude работает, а с -Include никак. Целый день на это убил^ всё думал, что где-то в параметрах накосячил, что не учел какой-то хитрый нюанс. И что в итоге оказалось? Поставил их PS7.1 в нем заработало. В нем даже первый безкостыльный вариант с использованием только Remove-Item заработал. В общем, оказался их баг.

Но намучившись с их Могучим Шеллом, я полез в 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-х. В общем, чем сложнее, тем лучше! Интуитивная понятливость это для слабаков! Во время написания скрипта на нашем языке юзер в обязательном порядке должен проклясть все на свете и изобрести парочку новых ругательств. Только такой язык имеет право на жизнь. Вон, линуксоиды всю жизнь так живут и получают от этого всего неизъяснимый кайф. А мы чем хуже?
Источник: habr.com
К списку статей
Опубликовано: 10.08.2020 18:20:12
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Powershell

Cmd

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2023, personeltest.ru