Mighty Shell Hate Post

For lang tid siden skrev jeg et simpelt script, der slettede alle undermapper med givne navne i en specificeret mappe:

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

Jeg har ikke brugt den i lang tid, men nu havde jeg brug for den. Jeg starter den - intet er slettet.

"WTF?", tænker jeg. Jeg begyndte at grave. Jeg fiflede og pillede, gennemgik alt, lavede en liste på forhånd og ændrede navnene – stadig er der intet slettet. Til sidst læste jeg i deres dokument: "Faktisk er -Include buggy, når det bruges sammen med -Recurse, så brug krykkekonstruktionen.":

Fordi Recurse-parameteren i Remove-Item har et kendt problem, bruger kommandoen i dette eksempel Get-ChildItem til at hente de ønskede filer og bruger derefter pipeline-operatøren til at sende dem til Remove-Item.

Nå, okay, jeg omskrev det med denne krykke. En helvedes aftale - det sletter ikke noget. I øvrigt, Get-ChildItem с -Omfatte returnerer tomhed. Igen, lige meget hvad jeg gjorde, uanset hvordan jeg forvrængede parametrene, virkede det ikke. Det vigtigste er med -Udelukke virker, men med -Omfatte ingen måde. Jeg brugte en hel dag på det her: Jeg tænkte hele tiden, at et eller andet sted i parametrene havde jeg skruet sammen, at jeg ikke havde taget højde for nogle tricky nuancer. Og hvad skete der til sidst? Jeg installerede dem på PS7.1, og det virkede. Den indeholder endda den første krykkefri mulighed, der kun bruger Fjern-vare tjent. Generelt viste det sig at være deres fejl.

Men efter at have lidt med deres Mighty Shell, gik jeg til Google for at læse, hvorfor deres shell har sådan en forbløffende syntaks. Damn, de placerer det som .NET til konsollen, men de lugter ikke engang C#-syntaks. I stedet for ham...

I hvert fald stødte jeg på denne artikel: "Hvad jeg hader ved PowerShell". Som de siger: "Jeg kunne ikke være mere enig."

Jeg formoder, at Mighty Shell-holdet er en flok Bash-fans.

- Lad os endelig lave en konsol til Windows, hvor du kan skrive komplekse scripts. Ellers er vores cmd forældet, så meget at vi allerede skammer os lidt.
- Lad os! Baseret på hvad vil vi gøre? Vi har allerede VBScript, JScript. Endelig har vi sprog til .NET: C#, VB. Måske kan vi gøre det i C#? Jeg mener, vi bruger C# som scriptsprog for vores konsol. Desuden ønsker vi at tilføje .NET klasser der.
- Nej, hvad laver du, dude, hvilken C#? Rigtige nørder bruger bash! Så lad os lave bash til Windows. Jeg er ligeglad med, at syntaksen for bash tilsyneladende blev skrevet af en flok stenede hipstere tilbage i 1960'erne. Generelt, jo mere kompleks jo bedre! Intuitivitet er for svage! Når man skriver et script på vores sprog, skal brugeren forbande alt i verden og opfinde et par nye bandeord. Kun sådan et sprog har ret til livet. Se, Linux-folk lever sådan hele deres liv og får en uforklarlig spænding af det hele. Hvorfor er vi værre?

Kun registrerede brugere kan deltage i undersøgelsen. Log ind, Vær venlig.

Bruger du PowerShell og er du tryg ved det?

  • 30,3 %Jeg bruger ikke 40

  • 29,6 %Jeg prøvede det og kunne ikke lide det39

  • 23,5 %Jeg bruger det og er tilfreds med alt31

  • 12,9 %Jeg bruger det, men jeg er ikke tilfreds17

  • 3,8 %Hurra! Endelig kan jeg bruge min yndlingsbash på Windows!5

132 brugere stemte. 26 brugere undlod at stemme.

Kilde: www.habr.com

Tilføj en kommentar