Geek School Εκμάθηση μεταβλητών PowerShell, εισόδου και εξόδου
Καθώς απομακρυνόμαστε από την απλή εκτέλεση εντολών και προχωράμε στην εγγραφή πλήρων σεναρίων, θα χρειαστείτε ένα προσωρινό μέρος για την αποθήκευση δεδομένων. Εδώ μπαίνουν οι μεταβλητές.
Βεβαιωθείτε ότι έχετε διαβάσει τα προηγούμενα άρθρα της σειράς:
- Μάθετε πώς να αυτοματοποιήσετε τα Windows με το PowerShell
- Μάθηση χρήσης Cmdlets στο PowerShell
- Πώς να χρησιμοποιήσετε αντικείμενα στο PowerShell
- Εκμάθηση μορφοποίησης, φιλτράρισμα και σύγκριση σε PowerShell
- Μάθετε να χρησιμοποιείτε Remoting στο PowerShell
- Χρησιμοποιώντας το PowerShell για να λάβετε πληροφορίες υπολογιστή
- Εργασία με συλλογές στο PowerShell
Και μείνετε συντονισμένοι για όλη την εβδομάδα.
Μεταβλητές
Οι περισσότερες γλώσσες προγραμματισμού επιτρέπουν τη χρήση μεταβλητών, οι οποίες είναι απλά δοχεία που διατηρούν τιμές. Στο PowerShell, έχουμε επίσης μεταβλητές και είναι πραγματικά εύκολο στη χρήση. Εδώ είναι πώς να δημιουργήσετε μια μεταβλητή που ονομάζεται "FirstName" και να της δώσει την τιμή "Taylor".
$ FirstName = "Taylor"
Το πρώτο πράγμα που οι περισσότεροι άνθρωποι φαίνεται να ρωτούν είναι γιατί βάζουμε ένα σημάδι δολαρίου μπροστά από το όνομα μεταβλητών, και αυτό είναι στην πραγματικότητα πολύ καλή ερώτηση. Πραγματικά, το σύμβολο του δολαρίου είναι μόνο μια μικρή υπόδειξη στο κέλυφος ότι θέλουμε να έχουμε πρόσβαση στα περιεχόμενα της μεταβλητής (σκεφτείτε τι υπάρχει μέσα στο δοχείο) και όχι το ίδιο το δοχείο. Στο PowerShell, τα ονόματα μεταβλητών δεν περιλαμβάνουν το σύμβολο του δολαρίου, πράγμα που σημαίνει ότι στο παραπάνω παράδειγμα το όνομα μεταβλητών είναι στην πραγματικότητα "FirstName".
Στο PowerShell, μπορείτε να δείτε όλες τις μεταβλητές που έχετε δημιουργήσει στη μεταβλητή PSDrive.
Μεταβλητή gci:
Αυτό σημαίνει ότι μπορείτε να διαγράψετε μια μεταβλητή από το κέλυφος οποιαδήποτε στιγμή:
Κατάργηση μεταβλητής αντικειμένου: \ FirstName
Οι μεταβλητές δεν χρειάζεται να περιέχουν ούτε ένα αντικείμενο. μπορείτε επίσης εύκολα να αποθηκεύσετε πολλά αντικείμενα σε μια μεταβλητή. Για παράδειγμα, εάν θέλετε να αποθηκεύσετε μια λίστα με τρέχουσες διεργασίες σε μια μεταβλητή, μπορείτε απλά να την αντιστοιχίσετε με την έξοδο του Get-Process.
$ Proc = Get-Process
Το κόλπο για την κατανόηση αυτού είναι να θυμόμαστε ότι η δεξιά πλευρά του σημείου ισότητας είναι πάντοτε αξιολογηθεί πρώτα. Αυτό σημαίνει ότι μπορείτε να έχετε έναν ολόκληρο αγωγό στη δεξιά πλευρά, αν θέλετε.
$ CPUHogs = Get-Process Ταξινόμηση CPU - Αποτυχία | επιλέξτε - Πρώτη 3
Η μεταβλητή CPUHogs θα περιέχει τώρα τις τρεις τρέχουσες διαδικασίες που χρησιμοποιούν το μεγαλύτερο CPU.
Όταν έχετε μια μεταβλητή που περιέχει μια συλλογή αντικειμένων, υπάρχουν μερικά πράγματα που πρέπει να γνωρίζετε. Για παράδειγμα, η κλήση μιας μεθόδου στη μεταβλητή θα προκαλέσει την κλήση σε κάθε αντικείμενο της συλλογής.
$ CPUHogs.Kill ()
Το οποίο θα σκότωνε και τις τρεις διαδικασίες στη συλλογή. Εάν θέλετε να έχετε πρόσβαση σε ένα μόνο αντικείμενο στη μεταβλητή, θα πρέπει να το αντιμετωπίζετε σαν έναν πίνακα.
$ CPUHogs [0]
Κάνοντας αυτό θα σας δώσει το πρώτο αντικείμενο στη συλλογή.
Μην πιάσετε!
Οι μεταβλητές στο PowerShell πληκτρολογούνται ασθενώς εξ ορισμού, πράγμα που σημαίνει ότι μπορούν να περιέχουν οποιοδήποτε είδος δεδομένων, αυτό φαίνεται να προσελκύει νέους χρήστες στο PowerShell όλη την ώρα!
$ α = 10
$ b = '20'
Έχουμε λοιπόν δύο μεταβλητές, μία περιέχει μια συμβολοσειρά και η άλλη ένα ακέραιο. Τι συμβαίνει εάν τα προσθέσετε; Εξαρτάται από την σειρά με την οποία τα προσθέτετε.
$ α + $ β = 30
Ενώ
$ b + $ a = 2010
Στο πρώτο παράδειγμα, ο πρώτος τελεστής είναι ένας ακέραιος, $ a, οπότε το PowerShell σκέφτεται ότι σκέφτεστε ότι προσπαθείτε να κάνετε μαθηματικά και ως εκ τούτου προσπαθεί να μετατρέψει άλλους οπεραίους σε ακέραιους αριθμούς. Ωστόσο, στο δεύτερο παράδειγμα, ο πρώτος τελεστής είναι μια συμβολοσειρά, οπότε το PowerShell μετατρέπει απλώς τους υπόλοιπους τελεστές σε χορδές και τους συγκολλάει. Οι πιο προηγμένοι συγγραφείς εμποδίζουν αυτό το είδος getcha μεταφέροντας τη μεταβλητή στον τύπο που περιμένουν.
[int] $ Αριθμός = 5
[int] $ Αριθμός = '5'
Τα παραπάνω θα έχουν ως αποτέλεσμα τη μεταβλητή Αριθμός που περιέχει ένα ακέραιο αντικείμενο με τιμή 5.
Είσοδος και έξοδος
Επειδή το PowerShell προορίζεται να αυτοματοποιήσει τα πράγματα, θα θελήσετε να αποφύγετε να ζητάτε πληροφορίες για τους χρήστες όποτε είναι δυνατόν. Με αυτό είπε, θα υπάρξουν φορές που δεν μπορείτε να το αποφύγετε και για εκείνους τους χρόνους έχουμε το cmdlet Read-Host. Η χρήση του είναι πραγματικά απλή:
$ FirstName = Read-Host -Prompt 'Εισάγετε το πρώτο σας όνομα'
Οποιοσδήποτε εισάγετε θα αποθηκευτεί στη μεταβλητή.
Η έξοδος γραφής είναι εξίσου εύκολη με το cmdlet εγγραφής-εξόδου.
Γράψτε την έξοδο "How-To Geek Rocks!"
Ελάτε μαζί μας αύριο, όπου συνδέουμε όλα όσα μάθαμε μαζί!