Mighty Shell Hate Post

Πριν από πολύ καιρό έγραψα ένα απλό σενάριο που διέγραψε όλους τους υποκαταλόγους με δεδομένα ονόματα σε έναν καθορισμένο κατάλογο:

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

Δεν το χρησιμοποιώ για πολύ καιρό, αλλά τώρα το χρειαζόμουν. Το εκκινώ - τίποτα δεν διαγράφεται.

«WTF;», νομίζω. Άρχισα να σκάβω. Έψαξα και τσάκωσα, έψαξα τα πάντα, δημιούργησα μια λίστα εκ των προτέρων και άλλαξα τα ονόματα - ακόμα τίποτα δεν έχει διαγραφεί. Τέλος, στο έγγραφό τους διάβασα: «Στην πραγματικότητα, το -Include είναι buggy όταν χρησιμοποιείται σε συνδυασμό με το -Recurse, επομένως χρησιμοποιήστε την κατασκευή του δεκανίκι.":

Επειδή η παράμετρος Recurse στο Remove-Item έχει ένα γνωστό ζήτημα, η εντολή σε αυτό το παράδειγμα χρησιμοποιεί το Get-ChildItem για να λάβει τα επιθυμητά αρχεία και, στη συνέχεια, χρησιμοποιεί τον τελεστή του αγωγού για να τα μεταβιβάσει στο Remove-Item.

Λοιπόν, εντάξει, το ξαναέγραψα χρησιμοποιώντας αυτό το δεκανίκι. Μια κολασμένη συμφωνία - δεν διαγράφει τίποτα. Εξάλλου, Get-ChildItem с -Περιλαμβάνω επιστρέφει το κενό. Και πάλι, ό,τι κι αν έκανα, ανεξάρτητα από το πόσο παραμόρφωσα τις παραμέτρους, δεν λειτούργησε. Το κύριο πράγμα είναι με -Αποκλείω λειτουργεί, αλλά με -Περιλαμβάνω με τιποτα. Πέρασα μια ολόκληρη μέρα σε αυτό: σκεφτόμουν συνέχεια ότι κάπου στις παραμέτρους είχα μπερδέψει, ότι δεν είχα λάβει υπόψη μου κάποια δύσκολη απόχρωση. Και τι έγινε τελικά; Τα εγκατέστησα στο PS7.1 και λειτούργησε. Περιέχει ακόμη και την πρώτη επιλογή χωρίς δεκανίκι χρησιμοποιώντας μόνο Αφαίρεση-Στοιχείο κερδηθείς. Σε γενικές γραμμές, αποδείχθηκε ότι ήταν το σφάλμα τους.

Αλλά έχοντας ταλαιπωρηθεί με το Mighty Shell τους, πήγα στο Google για να διαβάσω γιατί το κέλυφός τους έχει μια τόσο εντυπωσιακή σύνταξη. Γαμώτο, το τοποθετούν ως .NET για την κονσόλα, αλλά δεν μυρίζουν καν σύνταξη C#. Αντί για αυτόν…

Τέλος πάντων, έπεσα πάνω σε αυτό το άρθρο: "Τι μισώ για το PowerShellΌπως λένε: «Δεν θα μπορούσα να συμφωνήσω περισσότερο».

Υποψιάζομαι ότι η ομάδα Mighty Shell είναι ένα σωρό οπαδοί των Bash.

- Ας φτιάξουμε επιτέλους μια κονσόλα για Windows στην οποία μπορείτε να γράφετε πολύπλοκα σενάρια. Κατά τα άλλα το cmd μας είναι ξεπερασμένο, τόσο που ήδη ντρεπόμαστε λίγο.
- Ας! Με βάση τι θα κάνουμε; Έχουμε ήδη VBScript, JScript. Τέλος, έχουμε γλώσσες για .NET: C#, VB. Ίσως μπορούμε να το κάνουμε σε C#; Εννοώ ότι θα χρησιμοποιήσουμε την C# ως γλώσσα σεναρίου για την κονσόλα μας. Επιπλέον, θέλουμε να προσθέσουμε κλάσεις .NET εκεί.
- Όχι, τι κάνεις ρε φίλε, τι C#; Οι πραγματικοί geeks χρησιμοποιούν bash! Ας κάνουμε λοιπόν bash για τα Windows. Δεν με νοιάζει που η σύνταξη του bash προφανώς γράφτηκε από ένα πλήθος λιθοβολημένων χίπστερ στη δεκαετία του 1960. Γενικά όσο πιο σύνθετο τόσο το καλύτερο! Η διαισθητικότητα είναι για τα αδύναμα! Όταν γράφουμε ένα σενάριο στη γλώσσα μας, ο χρήστης πρέπει να βρίζει τα πάντα στον κόσμο και να εφεύρει μερικές νέες λέξεις κατάρας. Μόνο μια τέτοια γλώσσα έχει δικαίωμα στη ζωή. Κοίτα, οι άνθρωποι του Linux ζουν έτσι όλη τους τη ζωή και νιώθουν μια ανεξήγητη συγκίνηση από όλο αυτό. Γιατί είμαστε χειρότεροι;

Μόνο εγγεγραμμένοι χρήστες μπορούν να συμμετάσχουν στην έρευνα. Συνδεθείτε, Σας παρακαλούμε.

Χρησιμοποιείτε το PowerShell και αισθάνεστε άνετα με αυτό;

  • 30,3%Δεν χρησιμοποιώ 40

  • 29,6%Το δοκίμασα και δεν μου άρεσε39

  • 23,5%Το χρησιμοποιώ και είμαι ευχαριστημένος με τα πάντα31

  • 12,9%Το χρησιμοποιώ, αλλά δεν είμαι ευχαριστημένος17

  • 3,8%Ζήτω! Επιτέλους μπορώ να χρησιμοποιήσω το αγαπημένο μου bash στα Windows!5

Ψήφισαν 132 χρήστες. 26 χρήστες απείχαν.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο