Εντολές παύσης και αναμονής αρχείου παρτίδας: Πώς να ελέγξετε τη ροή των σεναρίων σας

Entoles Pauses Kai Anamones Archeiou Partidas Pos Na Elenxete Te Roe Ton Senarion Sas



Στη μαζική δέσμη ενεργειών στα Windows, οι προγραμματιστές μπορούν να ελέγχουν τη ροή των σεναρίων σας χρησιμοποιώντας διάφορες τεχνικές ή μεθόδους για την εισαγωγή παύσεων ή αναμονής. Οι εντολές 'παύση' και 'αναμονή' είναι δύο τρόποι για να ελέγξετε τη ροή των ομαδικών αρχείων σας. Η εντολή “pause” σταματά την εκτέλεση ενός αρχείου δέσμης ενώ παρουσιάζει το μήνυμα “Press any key to continue…”. Το αρχείο δέσμης δεν μπορεί να εκτελεστεί έως ότου ο χρήστης πατήσει ένα πλήκτρο. Η εκτέλεση του αρχείου δέσμης αναστέλλεται για τον αριθμό των δευτερολέπτων που υποδεικνύεται από την εντολή αναμονής.

Εντολή παύσης αρχείου παρτίδας

Η εντολή 'pause' ενός αρχείου δέσμης σταματά την εκτέλεση του αρχείου δέσμης ενώ εμφανίζεται το μήνυμα στη γραμμή εντολών. Το αρχείο δέσμης δεν θα εκτελεστεί έως ότου ο χρήστης πατήσει ένα πλήκτρο. Η εντολή που σταματά την επόμενη εκτέλεση είναι χρήσιμη. Η απευθείας εκτέλεση του αρχείου δέσμης και η εμφάνιση της επιθυμητής εξόδου στην οθόνη είναι ευεργετική.







Η σύνταξη της εντολής «παύση» είναι:



Παύση

Ζητήστε από τον χρήστη για εισαγωγή

Η εντολή 'pause' στην ακόλουθη δέσμη ενεργειών εμφανίζει το μήνυμα 'Press any key to continue…' όταν ο χρήστης εκτελεί αυτό το αρχείο δέσμης. Προτού το αρχείο δέσμης προχωρήσει στην εντολή 'dir', ο χρήστης πρέπει να πατήσει ένα πλήκτρο.



@echo off

rem Αυτό το αρχείο δέσμης διακόπτεται για να πατήσει ο χρήστης ένα πλήκτρο.

echo Γεια σας, Καλώς ήρθατε στην επίδειξη εντολής PAUSE.

Η εκτέλεση του σεναρίου echo συνεχίζεται μετά την παύση.

παύση

rem Αυτό το αρχείο δέσμης συνεχίζει με την επόμενη εντολή.

echo Ευχαριστώ!

εσείς





Όταν ο χρήστης πατήσει οποιοδήποτε πλήκτρο χρησιμοποιώντας το πληκτρολόγιο, αυτή η διαδικασία δέσμης συνεχίζεται:



Εντολή αναμονής αρχείου παρτίδας

Ο κώδικας που δώσατε είναι ένα αρχείο δέσμης που ανοίγει δύο προγράμματα: Σημειωματάριο και Ζωγραφική. Ο κωδικός είναι ο εξής:

@echo off

echo Έναρξη πρώτου προγράμματος.

START /B /WAIT notepad.exe

echo Σημειωματάριο Άνοιξε με επιτυχία στο παρασκήνιο

echo Έναρξη δεύτερου προγράμματος.

ΕΝΑΡΞΗ / ΑΝΑΜΟΝΗ mspaint.exe

echo Το Paint άνοιξε με επιτυχία.

cmd /k

Η πρώτη γραμμή, '@echo off', εμποδίζει το αρχείο δέσμης να εμφανίσει τις εντολές καθώς εκτελούνται.

Ο χρήστης απλώς ενημερώνεται ότι το πρώτο πρόγραμμα εκκινείται από τη δεύτερη γραμμή που είναι «echo Starting First Program».

Η τρίτη γραμμή, 'START /B /WAIT notepad.exe', ανοίγει το πρόγραμμα Σημειωματάριο σε ένα παράθυρο φόντου και περιμένει να τελειώσει πριν συνεχίσει. Ο διακόπτης '/B' λέει στην εντολή START να εκτελέσει το πρόγραμμα σε παράθυρο φόντου και ο διακόπτης '/WAIT' λέει στην εντολή START να περιμένει να τελειώσει το πρόγραμμα πριν συνεχίσει.

Η τέταρτη γραμμή διαβάζει το σημειωματάριο ηχούς. Όταν το Σημειωματάριο ανοίγει με επιτυχία στο παρασκήνιο, απλώς ειδοποιεί τον χρήστη με ένα μήνυμα.

Η πέμπτη γραμμή, «echo Starting Second Program», απλώς εμφανίζει ένα μήνυμα στον χρήστη ότι το δεύτερο πρόγραμμα ξεκινά.

Η έκτη γραμμή, 'START /WAIT mspaint.exe', ανοίγει το πρόγραμμα Paint σε παράθυρο φόντου και δεν περιμένει να τελειώσει πριν συνεχίσει.

Η έβδομη γραμμή, 'echo The Paint is Opened επιτυχώς', δείχνει απλώς ένα μήνυμα στον χρήστη ότι το Paint άνοιξε με επιτυχία.

Η όγδοη γραμμή, 'cmd /k', ανοίγει ένα νέο παράθυρο γραμμής εντολών και διατηρεί ανοιχτό το τρέχον παράθυρο της γραμμής εντολών.

Χρήση βρόχου για προσαρμοσμένες καθυστερήσεις

Μπορούμε να χρησιμοποιήσουμε έναν βρόχο για προσαρμοσμένες καθυστερήσεις στη διαδικασία δέσμης. Εδώ είναι ένα παράδειγμα:

Σε αυτό το παράδειγμα, το πρώτο μήνυμα εμφανίζεται στον χρήστη όταν εκτελείται αυτό το αρχείο δέσμης. Στη συνέχεια, το πρώτο μήνυμα εμφανίζεται για άλλη μια φορά μόλις ξεκινήσει ο βρόχος «για». Η εντολή timeout σταματά το αρχείο δέσμης για ένα δευτερόλεπτο πριν εμφανιστεί το δεύτερο μήνυμα. Στη συνέχεια εμφανίζεται το τελικό μήνυμα μετά από συνολικά 10 επαναλήψεις.

@echo off

echo Επίδειξη καθυστέρησης με χρήση βρόχου

για /l  %%i σε (1,1,10) κάντε (

timeout /t 1 /nobreak > nul

echo Αυτό το μήνυμα εμφανίζεται μετά από %%i  δευτερόλεπτο(α)

)

echo Αυτό το μήνυμα εμφάνισε καθυστέρηση 10 δευτερολέπτων.

Χρήση χρονικού ορίου καθυστέρησης

Η εντολή χρονικού ορίου λήξης ενός αρχείου δέσμης διακόπτει την εκτέλεση του αρχείου δέσμης για έναν προκαθορισμένο αριθμό δευτερολέπτων. Η σύνταξη δίνεται εδώ:

timeout /t [/nobreak]

Ο διακόπτης '/t' καθορίζει το χρόνο αναμονής σε δευτερόλεπτα. Ο διακόπτης “/nobreak” απενεργοποιεί το πάτημα των πλήκτρων από τον χρήστη για να διακοπεί η καθυστέρηση.

Η εντολή 'timeout' μπορεί να χρησιμοποιηθεί για:

  • Αναβάλετε την εκτέλεση ενός αρχείου δέσμης για μια προκαθορισμένη χρονική περίοδο
  • Αποτρέψτε τη διακοπή μιας ενέργειας ομαδικού αρχείου από το χρήστη
  • Δημιουργήστε μια πιο φιλική προς το χρήστη εμπειρία αποτρέποντας τον χρήστη από το να χρειαστεί να πατήσει ένα πλήκτρο για να συνεχίσει

Για παράδειγμα, το ακόλουθο αρχείο δέσμης τίθεται σε παύση για 10 δευτερόλεπτα:

@echo off

echo Γεια σας, Η εκτέλεση του σεναρίου συνεχίζεται μετά από 10 δευτερόλεπτα καθυστέρησης

timeout /t 10

echo Ευχαριστώ!

Όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης, εκτελείται ένα χρονόμετρο και περιμένει από τον χρήστη να διακόψει την εντολή «timeout» πατώντας οποιοδήποτε πλήκτρο. Εάν ο χρήστης πατήσει οποιοδήποτε πλήκτρο, η διαδικασία σταματά και μεταβαίνει στην επόμενη εντολή στο αρχείο δέσμης:

Ο χρήστης στο παρακάτω στιγμιότυπο οθόνης διακόπτει την εντολή 'timeout' μετά από 5 δευτερόλεπτα, με αποτέλεσμα να εμφανιστεί το 'Ευχαριστώ!' μήνυμα:

Το παρακάτω στιγμιότυπο οθόνης δείχνει πώς το 'Ευχαριστώ!' Το μήνυμα διαρκεί 10 δευτερόλεπτα για να εκτυπωθεί στην οθόνη εάν ο τελικός χρήστης δεν διακόψει την εντολή χρονικού ορίου:

Ακολουθεί ο ενημερωμένος κώδικας που έχει τροποποιηθεί ώστε να περιλαμβάνει τον διακόπτη χωρίς διακοπή που εμποδίζει τον τελικό χρήστη να διακόψει μια διαδικασία ομαδικού αρχείου:

@echo off

rem Αυτό το αρχείο δέσμης διακόπτεται για 10 δευτερόλεπτα

echo Γεια σας, Η εκτέλεση του σεναρίου συνεχίζεται μετά από 10 δευτερόλεπτα καθυστέρησης

timeout /t 10 /nobreak

rem Μετά από 10 δευτερόλεπτα αυτή η εντολή θα εμφανιστεί στην οθόνη προτροπής

echo Ευχαριστώ!

Εδώ είναι η έξοδος του προηγούμενου κώδικα:

Η γραμμή εντολών ζητά από τον χρήστη να πληκτρολογήσει είτε Y είτε N εάν ο χρήστης χρησιμοποιεί την εντολή 'CTRL+C'. Εάν ο χρήστης κάνει κλικ στο Y, αυτή η ομαδική εργασία διακόπτεται:

Οι εντολές 'pause', 'wait' και 'timeout' είναι οι τρόποι ελέγχου της ροής των σεναρίων μας. Η εκτέλεση του σεναρίου αναστέλλεται όταν χρησιμοποιείται η εντολή 'pause' και διακόπτεται για προκαθορισμένο χρονικό διάστημα όταν χρησιμοποιείται η εντολή 'timeout'.

Χρήση δηλώσεων υπό όρους για έλεγχο ροής

Οι δηλώσεις υπό όρους είναι η πιο συχνά εφικτή τεχνική που χρησιμοποιείται για την τροποποίηση της ροής ενός σεναρίου με βάση μια συγκεκριμένη περίσταση. Με βάση το εάν μια συνθήκη είναι αληθής ή ψευδής, η πρόταση 'if' εκτελεί ένα από τα δύο κομμάτια εκτέλεσης κώδικα. Η δήλωση «αν» δομείται ως εξής:

αν <συνθήκη> αλλιώς

Παράδειγμα:

Ανοίξτε το Σημειωματάριο ή οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου της επιλογής σας και γράψτε τον ακόλουθο κώδικα που αρχικοποιεί την τιμή της μεταβλητής inputValue σε 1 στην τρίτη γραμμή. Στη συνέχεια, η τιμή της μεταβλητής inputValue ελέγχεται χρησιμοποιώντας μια δήλωση 'if' κατά τον χρόνο εκτέλεσης για να δούμε αν ισούται με 1, 2 ή 3. Εάν ναι, το κατάλληλο μήνυμα εκτυπώνεται στην οθόνη της γραμμής εντολών. Εάν δεν είναι, εμφανίζεται το τελικό μήνυμα. Σε μια δήλωση υπό όρους γνωστή ως 'if', η τιμή εισόδου μιας μεταβλητής ελέγχεται για να διαπιστωθεί εάν ισούται με 1, 2 ή 3. Εάν ισχύει, τότε εκτελείται ένα από τα δύο μπλοκ κώδικα. Εάν η συνθήκη είναι αληθής, η πρόταση υπό όρους δεν κάνει τίποτα.

@echo off

rem Αυτή η δέσμη ενεργειών ελέγχει τη μεταβλητή inputValue έναντι των τιμών 1, 2 και 3.

ορίστε inputValue=1

εάν '%inputValue%'=='1' (

echo Η τιμή εισόδου είναι ίση με 1.

) αλλιώς εάν '%inputValue%'=='2' (

echo Η τιμή εισόδου είναι ίση με 2.

) αλλιώς εάν '%inputValue%'=='3' (

echo Η τιμή εισόδου είναι ίση με 3.

) άλλο (

echo Η μεταβλητή inputValue δεν είναι ίση με 1, 2 ή 3.

)

Παραγωγή:

συμπέρασμα

Η ροή σεναρίων μπορεί να ελέγχεται και οι διαδικασίες μπορούν να αυτοματοποιηθούν στο λειτουργικό σύστημα Windows χρησιμοποιώντας εντολές, βρόχους και δηλώσεις υπό όρους όπως 'if'. Οι προγραμματιστές μπορούν να σταματήσουν την εκτέλεση ενός σεναρίου ή να προσθέσουν καθυστερήσεις με την εντολή 'pause' χρησιμοποιώντας 'timeout' ή 'ping'. Παρόλο που δεν υπάρχει ενσωματωμένη δήλωση 'switch' στο σενάριο δέσμης, μπορούμε να την προσομοιώσουμε με εκφράσεις 'if' και 'else if'. Η δοκιμή είναι ζωτικής σημασίας για να διασφαλιστεί ότι αυτά τα σενάρια λειτουργούν όπως προβλέπεται στο κατάλληλο πλαίσιο. Αυτά τα σενάρια είναι χρήσιμα για αυτοματισμό, διαχείριση συστήματος και χειρισμό αρχείων.