強大的貝殼仇恨帖子

很久以前,我寫了一個簡單的腳本,刪除指定目錄中具有給定名稱的所有子目錄:

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

我已經很久沒有使用它了,但現在我需要它。我啟動它 - 沒有任何內容被刪除。

“WTF?”,我想。我開始挖掘。我擺弄了又擺弄,檢查了所有內容,提前創建了一個列表,並更改了名稱 - 但仍然沒有刪除任何內容。最後,在他們的文件中我讀到:「實際上,-Ininclude 與 -Recurse 結合使用時會出現錯誤,因此請使用拐杖構造。":

由於Remove-Item 中的Recurse 參數有已知問題,因此本範例中的指令使用Get-ChildItem 取得所需的文件,然後使用管道運算子將它們傳遞給Remove-Item。

好吧,我用這個拐杖重寫了它。這是一筆非常划算的交易——它不會刪除任何東西。而且, GET-ChildItem с -包括 返回空虛。再說一次,無論我做什麼,無論我如何扭曲參數,它都不起作用。最主要的是與 -排除 有效,但是與 -包括 決不。我花了一整天的時間:我一直在想,我在參數中的某個地方搞砸了,我沒有考慮到一些棘手的細微差別。最後發生了什麼事?我在 PS7.1 上安裝了它們並且它有效。它甚至包含第一個無拐杖選項,僅使用 除去項目 賺了。總的來說,這是他們的錯。

但在經歷了他們的 Mighty Shell 的折磨後,我去 Google 閱讀了為什麼他們的 shell 具有如此令人興奮的語法。該死,他們將其定位為控制台的 .NET,但他們甚至沒有聞到 C# 語法。而不是他…

無論如何,我看到了這篇文章:“我討厭 PowerShell 的地方”。正如他們所說:“我完全同意。”

我懷疑 Mighty Shell 團隊是一群 Bash 粉絲。

- 最後讓我們製作一個 Windows 控制台,您可以在其中編寫複雜的腳本。不然的話,我們的cmd已經過時了,以至於我們已經有點羞愧了。
- 讓我們!基於什麼我們會做什麼?我們已經有了 VBScript、JScript。最後,我們有 .NET 的語言:C#、VB。也許我們可以用 C# 來做?我的意思是,我們將使用 C# 作為控制台的腳本語言。此外,我們想在那裡新增 .NET 類別。
- 不,你在做什麼,夥計,什麼 C#?真正的極客使用 bash!那麼讓我們為 Windows 製作 bash。我不在乎 bash 的語法顯然是由一群 1960 世紀 XNUMX 年代喝醉的時髦人士編寫的。一般來說,越複雜越好!直覺是弱者的專利!當用我們的語言編寫腳本時,使用者必須詛咒世界上的一切並發明一些新的詛咒詞。只有這樣的語言才有生命的權利。你看,Linux人一輩子就這樣過著,並從中獲得一種莫名的快感。為什麼我們更差?

只有註冊用戶才能參與調查。 登入, 請。

您使用 PowerShell 嗎?您對此感到滿意嗎?

  • 企業排放佔全球 30,3%我沒用40

  • 企業排放佔全球 29,6%我嘗試過但不喜歡39

  • 企業排放佔全球 23,5%我使用它並且對一切都很滿意31

  • 企業排放佔全球 12,9%我用了,但我不高興17

  • 企業排放佔全球 3,8%萬歲!我終於可以在 Windows 上使用我最喜歡的 bash!5

132 位用戶投票。 26 名用戶棄權。

來源: www.habr.com

添加評論