Machtige Shell-haatpost

Lang geleden schreef ik een eenvoudig script dat alle submappen met voornamen in een opgegeven map verwijderde:

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

Ik heb het al een tijdje niet meer gebruikt, maar nu had ik het nodig. Ik start het - er wordt niets verwijderd.

“WTF?”, denk ik. Ik begon te graven. Ik rommelde en rommelde, heb alles doorgenomen, van tevoren een lijst gemaakt en de namen gewijzigd - er is nog steeds niets verwijderd. Ten slotte las ik in hun document: "Eigenlijk bevat -Include fouten als het wordt gebruikt in combinatie met -Recurse, dus gebruik de krukconstructie.":

Omdat de parameter Recurse in Remove-Item een ​​bekend probleem heeft, gebruikt de opdracht in dit voorbeeld Get-ChildItem om de gewenste bestanden op te halen, en gebruikt vervolgens de pijplijnoperator om deze door te geven aan Remove-Item.

Nou, oké, ik heb het herschreven met deze kruk. Een geweldige deal: er wordt niets verwijderd. Bovendien, Get-ChildItem с -Erbij betrekken geeft leegte terug. Nogmaals, wat ik ook deed, hoe ik de parameters ook vervormde, het werkte niet. Het belangrijkste is met -Uitsluiten werkt, maar met -Erbij betrekken echt niet. Ik ben hier een hele dag mee bezig geweest: ik bleef maar denken dat ik ergens in de parameters een fout had gemaakt, dat ik geen rekening had gehouden met een lastige nuance. En wat gebeurde er uiteindelijk? Ik heb ze op PS7.1 geïnstalleerd en het werkte. Het bevat zelfs de eerste krukloze optie waarbij alleen wordt gebruikt Verwijder voorwerp verdiend. Over het algemeen bleek het hun bug te zijn.

Maar omdat ik last had van hun Mighty Shell, ging ik naar Google om te lezen waarom hun shell zo'n verbluffende syntaxis heeft. Verdomme, ze positioneren het als .NET voor de console, maar ze ruiken niet eens de C#-syntaxis. In plaats van hem…

Hoe dan ook, ik kwam dit artikel tegen: "Wat ik haat aan PowerShell". Zoals ze zeggen: "Ik ben het daar volledig mee eens."

Ik vermoed dat het Mighty Shell-team een ​​stel Bash-fans is.

- Laten we eindelijk een console voor Windows maken waarin je complexe scripts kunt schrijven. Anders is onze cmd verouderd, zozeer zelfs dat we ons al een beetje schamen.
- Laten we! Op basis van wat gaan we doen? We hebben al VBScript, JScript. Tenslotte hebben we talen voor .NET: C#, VB. Misschien kunnen we het in C# doen? Ik bedoel, we zullen C# gebruiken als de scripttaal voor onze console. Bovendien willen we daar .NET-klassen toevoegen.
- Nee, wat ben je aan het doen, kerel, wat voor C#? Echte nerds gebruiken bash! Dus laten we bash voor Windows maken. Het kan me niet schelen dat de syntaxis voor bash blijkbaar in de jaren zestig door een menigte stonede hipsters is geschreven. Over het algemeen geldt: hoe complexer, hoe beter! Intuïtiviteit is voor zwakkelingen! Bij het schrijven van een script in onze taal moet de gebruiker alles in de wereld vervloeken en een paar nieuwe vloekwoorden verzinnen. Alleen zo'n taal heeft recht op leven. Kijk, Linux-mensen leven hun hele leven zo en krijgen er een onverklaarbare sensatie van. Waarom zijn wij nog slechter?

Alleen geregistreerde gebruikers kunnen deelnemen aan het onderzoek. Inloggen, Alsjeblieft.

Maak je gebruik van PowerShell en ben je er vertrouwd mee?

  • 30,3%Ik gebruik geen 40

  • 29,6%Ik heb het geprobeerd en vond het niet leuk39

  • 23,5%Ik gebruik het en ben overal blij mee31

  • 12,9%Ik gebruik het, maar ik ben er niet blij mee17

  • 3,8%Hoera! Eindelijk kan ik mijn favoriete bash op Windows gebruiken!5

132 gebruikers hebben gestemd. 26 gebruikers onthielden zich van stemming.

Bron: www.habr.com

Voeg een reactie