27Jul

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 όλη την ώρα!

$ a = 10

$ b = '20'

Έχουμε λοιπόν δύο μεταβλητές, το ένα περιέχει μια συμβολοσειρά και το άλλο ένα ακέραιο.Τι συμβαίνει εάν τα προσθέσετε;Εξαρτάται από την σειρά που τα προσθέτετε.

$ a + $ b = 30

Ενώ

$ b + $ a = 2010

Στο πρώτο παράδειγμα, ο πρώτος τελεστής είναι ένας ακέραιος, $ a, έτσι σκέφτεται το PowerShell ότιπροσπαθείτε να κάνετε μαθηματικά και ως εκ τούτου προσπαθεί να μετατρέψει οποιοδήποτε άλλο τελεστές σε ακεραίους επίσης.Ωστόσο, στο δεύτερο παράδειγμα, ο πρώτος τελεστής είναι μια συμβολοσειρά, οπότε το PowerShell μετατρέπει απλώς τους υπόλοιπους τελεστές σε χορδές και τις συγκολλάει.Τα πιο προηγμένα scripting εμποδίζουν αυτό το είδος getcha μεταφέροντας τη μεταβλητή στον τύπο που περιμένουν.

[int] $ Αριθμός = 5
[int] $ Αριθμός = '5'

Τα παραπάνω θα έχουν ως αποτέλεσμα τη μεταβλητή Αριθμός που περιέχει ένα ακέραιο αντικείμενο με τιμή 5.

Εισόδου και Εξόδου

Επειδή το PowerShell προορίζεται για αυτοματοποίηση, θα θελήσετε να αποφύγετε να ζητάτε πληροφορίες από τους χρήστες όποτε είναι δυνατόν.Με αυτό είπε, θα υπάρξουν φορές που δεν μπορείτε να το αποφύγετε και για εκείνους τους χρόνους έχουμε το cmdlet Read-Host.Η χρήση του είναι πολύ απλή:

$ FirstName = Read-Host -Prompt 'Εισαγάγετε το πρώτο σας όνομα'

Οποιοσδήποτε εισάγετε θα αποθηκευτεί στη μεταβλητή.Η έξοδος γραφής

είναι εξίσου εύκολη με το cmdlet εγγραφής-εξόδου.

Εγγραφή-Output "Πώς να Geek Rocks!"

Ελάτε μαζί μας αύριο, όπου συνδέουμε ό, τι έχουμε μάθει μαζί!