לפני זמן רב, כתבתי סקריפט פשוט שמוחק את כל תת-הספריות עם שמות נתונים בספרייה מוגדרת:
Remove-Item * -Force -Recurse -Include name1,name2,name3 -ErrorAction SilentlyContinue לא השתמשתי בו זמן מה, אבל עכשיו אני צריך אותו. אני מפעיל אותו והוא לא מוחק כלום.
"מה לעזאזל?" חשבתי לעצמי. התחלתי לחפור. חיטטתי, ניסיתי הכל, אפילו יצרתי רשימה ושיניתי את השמות - זה עדיין לא מוחק כלום. לבסוף, קראתי במסמכים שלהם:למעשה, פונקציה -Include היא באגית כאשר משתמשים בה עם -Recurse, לכן השתמשו בקונסטרוקציה פריצה.":
מכיוון שלפרמטר Recurse ב-Remove-Item יש בעיה ידועה, הפקודה בדוגמה זו משתמשת ב-Get-ChildItem כדי לקבל את הקבצים הרצויים, ולאחר מכן משתמשת באופרטור pipeline כדי להעביר אותם ל-Remove-Item.
אוקיי, כתבתי את זה מחדש בעזרת הטריק הזה. זה עדיין לא מוחק כלום. יתר על כן, Get-ChildItem с -לִכלוֹל מחזירה שטח ריק. שוב, לא משנה מה עשיתי, לא משנה כמה התעסקתי עם הפרמטרים, זה לא עובד. העיקר הוא, -לא לכלול עובד, אבל עם -לִכלוֹל אין סיכוי. ביליתי את כל היום בזה: חשבתי כל הזמן שטעיתי בהגדרות איפשהו, שפספסתי איזה פרט מסובך. ומה קרה בסוף? התקנתי אותם על ה-PS7.1 - זה עבד. אפילו הייתה לו את הגרסה הראשונה ללא שבב שרק השתמשה בו הסר פריט זה עבד. בעיקרון, התברר שזה היה הבאג שלהם.
אבל אחרי שנאבקתי עם ה-Mighty Shell שלהם, הלכתי לגוגל כדי לברר למה ל-shell שלהם יש תחביר כל כך מטורף. לעזאזל, הם משווקים אותו כ-.NET עבור הקונסולה, אבל אין אפילו שמץ של תחביר C#. במקום זאת...
בכל מקרה, נתקלתי בכתבה הזאת: ""כמו שאומרים: "אני מסכים לחלוטין."
אני חושד שקבוצת Mighty Shell היא חבורה של אוהדי Bash.
בואו סוף סוף נעשה את זה בשביל Windows קונסולה שבה נוכל לכתוב סקריפטים מורכבים. קובץ ה-CMD שלנו כל כך מיושן שאנחנו כבר קצת מתביישים.
— בואו נעשה את זה! מה נשתמש כבסיס? כבר יש לנו VBScript ו-JScript. לבסוף, יש לנו שפות .NET: C# ו-VB. אולי נוכל לעשות את זה ב-C#? כלומר, נשתמש ב-C# כשפת הסקריפטים עבור הקונסולה שלנו. יתר על כן, אנחנו רוצים לשלב בה מחלקות .NET.
— לא, נו באמת, אחי, איזה C#? גיקים אמיתיים משתמשים ב-Bash! אז בואו ניצור Bash בשביל... Windowsלא משנה שתחביר הבש נכתב כנראה על ידי חבורה של היפסטרים מסטולים בשנות ה-1960. בעיקרון, ככל שזה יותר מורכב, יותר טוב! אינטואיציה היא לחסרי טעם! כשכותבים סקריפט בשפה שלנו, המשתמש חייב לקלל כל דבר תחת השמש ולהמציא כמה מילות גנאי חדשות. רק לשפה כזו יש זכות קיום. תראו את משתמשי הלינוקס האלה, הם חיים ככה כל חייהם ומקבלים מזה ריגוש שאי אפשר לתאר. ולמה אנחנו גרועים יותר?
רק משתמשים רשומים יכולים להשתתף בסקר. בבקשה.
האם אתה משתמש ב-PowerShell ואתה מרוצה ממנו?
30,3%אני לא משתמש ב-40
29,6%ניסיתי את זה ולא אהבתי.
23,5%אני משתמש בו ומרוצה מהכל.
12,9%אני משתמש בו, אבל אני לא מרוצה.
3,8%הידד! סוף סוף אני יכול Windows השתמשו בטקס האהוב עליכם!
132 משתמשים הצביעו. 26 משתמשים נמנעו.
מקור: www.habr.com
