Написав я якось давно один простий скрипт, який видаляє у зазначеній директорії всі піддиректорії із заданими іменами:
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# у них навіть не пахне. Замість нього…
Загалом, натрапив на таку статтю: "
Підозрюю, що команда Могутнього Шелла - це збіговисько любителів 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