Post di odio della Mighty Shell

Molto tempo fa ho scritto un semplice script che cancellava tutte le sottodirectory con determinati nomi in una directory specificata:

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

Non lo uso da molto tempo, ma ora ne avevo bisogno. Lo lancio: nulla viene eliminato.

"WTF?", penso. Ho iniziato a scavare. Ho giocherellato e giocherellato, ho esaminato tutto, ho creato un elenco in anticipo e ho cambiato i nomi, ma nulla è stato cancellato. Infine, nel loro documento leggo: "In realtà, -Include presenta bug se utilizzato insieme a -Recurse, quindi utilizzare il costrutto stampella.":

Poiché il parametro Recurse in Remove-Item presenta un problema noto, il comando in questo esempio utilizza Get-ChildItem per ottenere i file desiderati, quindi utilizza l'operatore pipeline per passarli a Remove-Item.

Bene, ok, l'ho riscritto usando questa stampella. Un vero affare: non cancella nulla. Inoltre, Get-ChildItem с -Includere restituisce il vuoto. Ancora una volta, non importa cosa ho fatto, non importa come ho distorto i parametri, non ha funzionato. La cosa principale è con -Escludere funziona, ma con -Includere non c'è modo. Ci ho passato un'intera giornata: continuavo a pensare che da qualche parte nei parametri avevo sbagliato, che non avevo tenuto conto di qualche sfumatura complicata. E cosa è successo alla fine? Li ho installati su PS7.1 e ha funzionato. Contiene anche la prima opzione senza stampelle utilizzando solo Rimuovi oggetto guadagnato. In generale, si è rivelato essere il loro bug.

Ma avendo sofferto con la loro Mighty Shell, sono andato su Google per leggere perché la loro shell ha una sintassi così strabiliante. Dannazione, lo posizionano come .NET per la console, ma non sentono nemmeno l'odore della sintassi C#. Invece di lui...

Comunque mi sono imbattuto in questo articolo: "Ciò che odio di PowerShellCome si suol dire: "Non potrei essere più d'accordo".

Sospetto che il team di Mighty Shell sia composto da un gruppo di fan di Bash.

- Creiamo finalmente una console per Windows in cui puoi scrivere script complessi. Altrimenti il ​​nostro cmd è obsoleto, tanto che già ci vergogniamo un po’.
- Andiamo! In base a cosa faremo? Abbiamo già VBScript, JScript. Infine, abbiamo i linguaggi per .NET: C#, VB. Forse possiamo farlo in C#? Voglio dire, useremo C# come linguaggio di scripting per la nostra console. Inoltre, vogliamo aggiungere lì le classi .NET.
- No, cosa stai facendo, amico, che do#? I veri geek usano bash! Quindi creiamo bash per Windows. Non mi interessa che la sintassi di bash sia stata apparentemente scritta da una folla di hipster sballati negli anni ’1960. In generale, più è complesso, meglio è! L'intuitività è per i deboli! Quando si scrive una sceneggiatura nella nostra lingua, l'utente deve maledire tutto nel mondo e inventare un paio di nuove parolacce. Solo una lingua del genere ha diritto alla vita. Guarda, le persone Linux vivono così tutta la loro vita e provano un brivido inspiegabile da tutto ciò. Perché siamo peggio?

Solo gli utenti registrati possono partecipare al sondaggio. AccediPer favore.

Usi PowerShell e ti trovi a tuo agio?

  • 30,3%Non uso 40

  • 29,6%L'ho provato e non mi è piaciuto39

  • 23,5%Lo uso e sono soddisfatto di tutto31

  • 12,9%Lo uso, ma non sono contento17

  • 3,8%Evviva! Finalmente posso usare la mia bash preferita su Windows!5

132 utenti hanno votato. 26 utenti si sono astenuti.

Fonte: habr.com

Aggiungi un commento