Πώς ένα PowerShell For Loop μπορεί να εκτελέσει μια εντολή πολλές φορές

Ο βρόχος For είναι ένα από τα πιο πολύτιμα εργαλεία σε οποιαδήποτε γλώσσα προγραμματισμού(valuable tools in any programming language) και  το Microsoft PowerShell(Microsoft PowerShell) δεν διαφέρει. Μπορείτε να χρησιμοποιήσετε άλλους βρόχους για να επαναλάβετε εντολές, αλλά ο βρόχος For είναι ίσως ο πιο απλός.

Από την επανάληψη σε πίνακες έως την εκτέλεση μιας συνάρτησης προκαθορισμένο αριθμό φορών, υπάρχουν πολλά πράγματα που μπορείτε να επιτύχετε με αυτό το εργαλείο. Ακολουθεί ένας οδηγός σχετικά με τον τρόπο χρήσης των βρόχων For στο PowerShell .

Ποια είναι η χρήση των (Use)βρόχων(Loops) For στο PowerShell ;

Σε αντίθεση με τη γραμμή εντολών(Command Prompt) , το PowerShell είναι ένα πλήρες περιβάλλον δέσμης ενεργειών. Αυτό σημαίνει ότι μπορείτε να γράψετε επαναχρησιμοποιήσιμα σενάρια PowerShell(PowerShell scripts) για αυτόματη εκτέλεση εργασιών αντί για μη αυτόματη εισαγωγή εντολών. Και οι βρόχοι For είναι το κλειδί για τη σύνταξη αυτών των λειτουργικών μονάδων.

Μια δήλωση For επαναλαμβάνει ένα μπλοκ σεναρίου συγκεκριμένες φορές, τροποποιώντας μια δεδομένη μεταβλητή για να παρακολουθεί την εξέλιξη. Αυτό σας επιτρέπει να χρησιμοποιήσετε το βρόχο για μερικά αρκετά ενδιαφέροντα σενάρια.

Μπορείτε να δημιουργήσετε ακολουθίες αριθμών, να προσδιορίσετε έναν πρώτο αριθμό ή να εμφανίσετε ένα χρονόμετρο αντίστροφης μέτρησης. Πιο πρακτικά, μπορείτε να κάνετε επανάληψη σε μια σειρά αντικειμένων, εκτελώντας κάποια ενέργεια με κάθε καταχώρηση.

Η σύνταξη(Syntax) ενός βρόχου(Loop) For στο PowerShell

Οι βρόχοι λειτουργούν στο Windows PowerShell με τον ίδιο τρόπο που λειτουργούν σε οποιαδήποτε γλώσσα προγραμματισμού. Οι εκφράσεις που αρχικοποιούν τη μεταβλητή παρακολούθησης, δοκιμάζουν την τιμή της και τροποποιούν τη μεταβλητή καταχωρούνται μέσα στις αγκύλες που ακολουθούν το "For", διαχωρισμένες με ερωτηματικά. Στη συνέχεια, έρχεται η ίδια η λίστα δηλώσεων που δεσμεύεται από σγουρά τιράντες.

Για ( Αρχικοποίηση(Initialization) , Κατάσταση(Condition) , Ενημέρωση(Update) )

{

    Μπλοκ σεναρίου(Script Block)

}

Πώς να χρησιμοποιήσετε το βρόχο(Loop) For σε ένα σενάριο PowerShell(PowerShell Script)

Η χρήση του βρόχου For είναι αρκετά απλή. Κάθε φορά που αντιμετωπίζετε μια κατάσταση που απαιτεί την επανάληψη ενός ελαφρώς μεταβαλλόμενου βήματος, θα πρέπει να το βάλετε σε έναν βρόχο For.

Ας υποθέσουμε ότι πρέπει να γράψετε ένα απόσπασμα κώδικα που μπορεί να βρει το άθροισμα όλων των φυσικών αριθμών μέχρι έναν αριθμό n , που περιέχεται στη μεταβλητή $n. Ακολουθεί ένα βασικό παράδειγμα βρόχου For:

$n = 10

$sum = 0

Για ($i = 1 ; $i -le $n ; $i++)

{

    $sum = $sum + $i

}

"Το άθροισμα $n φυσικών αριθμών είναι $sum"

Πρόσβαση σε πίνακες μέσω βρόχου For

Η δημιουργία αριθμητικών ακολουθιών δεν είναι κάτι για το οποίο χρησιμοποιούν οι περισσότεροι άνθρωποι το PowerShell . Μια πιο κοινή χρήση είναι η επανάληψη σε έναν πίνακα.

Ας υποθέσουμε(Say) ότι έχετε έναν πίνακα $week με επτά στοιχεία. Μπορείτε να εξάγετε τη λίστα των ημερών που περιέχονται στον πίνακα χρησιμοποιώντας έναν απλό βρόχο For, όπως φαίνεται στο ακόλουθο παράδειγμα.

Για ($i = 0 ; $i -lt $week.Length ; $i++)

{

    $week[$i]

}

Χρήση του βρόχου ForEach(ForEach Loop) για γρήγορη(Quickly Iterate) επανάληψη μέσω ενός πίνακα

Μια άλλη μορφή του βρόχου For είναι η πρόταση ForEach(ForEach) . Αυτή η έκδοση απλοποιεί τη μετάβαση στα περιεχόμενα ενός πίνακα PowerShell και την επεξεργασία τους μεμονωμένα. Το προηγούμενο απόσπασμα κώδικα, για παράδειγμα, μπορεί να ξαναγραφτεί ως εξής:

Foreach ($day σε $week)

{

    $ημέρα

}

Όταν ασχολείστε με πιο σύνθετα αντικείμενα, μπορείτε επίσης να χρησιμοποιήσετε το cmdlet Foreach-Object για να εκτελέσετε μια ενέργεια στα περιεχόμενα οποιασδήποτε εντολής PowerShell .

Πώς διαφέρει ο βρόχος (Loop Different)For(Loops) από άλλους τύπους(Types) βρόχων ;

Ο βρόχος For δεν είναι ο μόνος τύπος δήλωσης επαναφοράς που έχετε στη διάθεσή σας. Όπως οι περισσότερες γλώσσες προγραμματισμού, το PowerShell έχει πολλούς τύπους βρόχων.

Ενώ

Το απλούστερο από αυτά είναι ο βρόχος while. Το μόνο που έχετε είναι μια συνθήκη και ένα μπλοκ σεναρίου και ο βρόχος εκτελείται όσο η δοκιμαστική έκφραση αξιολογείται ως true. Δεδομένου ότι η έκφραση αξιολογείται πρώτα, υπάρχει πιθανότητα ο κώδικας να μην εκτελεστεί καθόλου ή να καταλήξει ως ένας άπειρος βρόχος. 

Ενώ ( Κατάσταση(Condition) )

{

    Μπλοκ σεναρίου(Script Block)

}

Do-While

Εάν γράφετε ένα σενάριο που πρέπει να εκτελεστεί τουλάχιστον μία φορά – ακόμα κι αν η έκφραση αξιολογηθεί ως ψευδής – τότε μπορείτε να χρησιμοποιήσετε τον βρόχο Do-While . Η μόνη διαφορά από τον βρόχο while είναι ότι τοποθετεί το μπλοκ εντολών πριν από τη συνθήκη, πράγμα που σημαίνει ότι ο κώδικας εκτελείται πριν ελεγχθεί για πρώτη φορά η δοκιμαστική έκφραση.

Κάνω {

    Μπλοκ σεναρίου(Script block)

}

Ενώ ( Κατάσταση(Condition) )

Do-Μέχρι

Μια άλλη έκδοση αυτού του βρόχου είναι Do-Until . Βασικά(Basically) , εκτελεί το μπλοκ κώδικα και στη συνέχεια το επαναλαμβάνει μέχρι να είναι αληθής η δοκιμαστική έκφραση - το αντίστροφο ενός βρόχου Do-While . Δεν είναι μια ιδιαίτερα χρήσιμη δομή, καθώς μπορείτε να επιτύχετε το ίδιο πράγμα τροποποιώντας τη συνθήκη σε έναν τυπικό βρόχο Do-While .

Κάνω {

    Μπλοκ σεναρίου(Script Block)

}

Μέχρι ( Κατάσταση(Condition) )

Γιατί το For Loop είναι καλύτερο

Το πρόβλημα με όλες αυτές τις άλλες δομές βρόχου είναι ότι δεν περιλαμβάνουν την αρχική τιμή ή δηλώσεις ενημέρωσης. Πρέπει να θυμάστε χειροκίνητα να δημιουργήσετε μια μεταβλητή εκτός του βρόχου και στη συνέχεια να την αυξάνετε (ή να τη μειώνετε) κατά τη διάρκεια κάθε διέλευσης του βρόχου.

Όπως θα περίμενε κανείς, οι προγραμματιστές συχνά ξεχνούν αυτό το βήμα, οδηγώντας σε ένα σενάριο που δεν λειτουργεί όπως έπρεπε. Αυτό σπαταλά πολύτιμο χρόνο στον εντοπισμό σφαλμάτων.

Ο βρόχος For αποφεύγει αυτό το ζήτημα καθιστώντας απαραίτητη την προετοιμασία και τις εκφράσεις αύξησης εντός των αρχικών αγκύλων. Αυτό οδηγεί σε καθαρότερα, πιο στιβαρά σενάρια.

Πότε πρέπει να χρησιμοποιήσετε το βρόχο(Loop) For στο PowerShell ;

Το PowerShell(PowerShell) έχει να κάνει με τη δημιουργία σεναρίων για αυτοματοποίηση. Και ίσως το πιο χρήσιμο εργαλείο για να το πετύχετε αυτό είναι ο βρόχος For. Μπορείτε να το χρησιμοποιήσετε για να αντικαταστήσετε πολλές λειτουργίες αντιγραφής-επικόλλησης με ένα πιο συμπαγές, κομψό σενάριο.

Η πιο κοινή λειτουργία αυτού του βρόχου είναι η επανάληψη σε έναν πίνακα, μία καταχώρηση κάθε φορά. Για ένα ακόμα πιο βελτιωμένο σενάριο, μπορείτε επίσης να χρησιμοποιήσετε έναν βρόχο ForEach . Μπορείτε επίσης να χρησιμοποιήσετε τον βρόχο For για να δημιουργήσετε αριθμητικές ακολουθίες, αν και αυτό είναι σπάνια απαραίτητο.

Ο βρόχος For βαθμολογείται σε σχέση με άλλους αλγόριθμους βρόχου συμπεριλαμβάνοντας όλες τις βασικές συναρτήσεις ενός βρόχου στις παραμέτρους, αποτρέποντας τυχόν σφάλματα που οφείλονται στη λήθη αυτών των δηλώσεων. Αυτό καθιστά τον βρόχο For απαραίτητο σε κάθε σενάριο που απαιτεί επανάληψη ενός συνόλου εντολών.



About the author

Είμαι μηχανικός λογισμικού με πάνω από 10 χρόνια εμπειρίας στον κλάδο του Xbox. Ειδικεύομαι στην ανάπτυξη παιχνιδιών και στις δοκιμές ασφαλείας. Είμαι επίσης έμπειρος κριτικός και εργάζομαι σε έργα για μερικά από τα μεγαλύτερα ονόματα του gaming, συμπεριλαμβανομένων των Ubisoft, Microsoft και Sony. Στον ελεύθερο χρόνο μου, μου αρέσει να παίζω βιντεοπαιχνίδια και να παρακολουθώ τηλεοπτικές εκπομπές.



Related posts