Post des Hasses auf Mighty Shell

Vor einiger Zeit habe ich ein einfaches Skript geschrieben, das alle Unterverzeichnisse mit den angegebenen Namen im angegebenen Verzeichnis löscht:



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


Ich habe es schon lange nicht mehr benutzt, aber hier wurde es gebraucht. Ich führe es aus - ich habe nichts gelöscht.



"WTF?", Denke ich. Er fing an zu graben. Ich habe herumgespielt und herumgespielt, ich habe alles durchgesehen, und ich hatte zuvor die Liste erstellt und die Namen geändert - es wird immer noch nichts gelöscht. Am Ende las ich in ihrem Dock: " Eigentlich ist -Include fehlerhaft, wenn es zusammen mit -Recurse verwendet wird, also benutze eine Krücke. ":

Da der Recurse-Parameter in Remove-Item ein bekanntes Problem aufweist, verwendet der Befehl in diesem Beispiel Get-ChildItem, um die gewünschten Dateien abzurufen, und übergibt sie dann mithilfe des Pipeline-Operators an Remove-Item.


Okay, ich habe es mit dieser Krücke umgeschrieben. Ein Meerrettich entfernt nichts. Außerdem gibt Get-ChildItem mit -Include leer zurück. Auch hier funktioniert das, was ich gerade nicht getan habe, da ich nicht mit Parametern verzerrt habe, nicht. Die Hauptsache ist, dass es mit -Exclude funktioniert , aber nichts mit -Include . Ich habe es den ganzen Tag getötet: Ich dachte, ich hätte irgendwo in den Parametern etwas durcheinander gebracht, ich hätte einige listige Nuancen nicht berücksichtigt. Und was ist am Ende passiert? Ich habe sie auf PS7.1 gestellt - es hat funktioniert. Sogar die erste chuteless Version, die nur Remove-Item verwendet, hat darin funktioniert. Im Allgemeinen stellte sich heraus, dass es ihr Fehler war.



Aber nachdem ich mit ihrer Mighty Shell abgenutzt war, ging ich zu Google, um zu lesen, warum ihre Shell eine so wütende Syntax hat. Mlyn, sie positionieren es als .NET für die Konsole, aber sie riechen nicht einmal nach C # -Syntax. Stattdessen ...



Im Allgemeinen bin ich auf diesen Artikel gestoßen: " Was ich an PowerShell hasse ". Wie das Sprichwort sagt: "Ich könnte nicht mehr zustimmen."



Ich vermute, das Team von Mighty Shell ist ein Haufen Bash-Liebhaber.



- Lassen Sie uns endlich eine Windows-Konsole erstellen, in der komplexe Skripte geschrieben werden können. Und dann ist unser cmd so veraltet, dass wir uns schon ein wenig schämen.

— ! ? VBScript, JScript. , .NET: C#, VB. , C# ? , C# . , .NET .

— , , , C#? bash! bash Windows. , bash , , 1960-. , , ! — ! . . , . ?



All Articles