Εάν κάνετε πολλή δουλειά στα αρχεία δέσμης των Windows, η εντολή IF προσφέρει έναν πολύ ισχυρό τρόπο για να προσθέσετε ευελιξία στα σενάρια σας.
Σε αυτό το άρθρο θα μάθετε τους πέντε κύριους τύπους εντολών IF που μπορείτε να χρησιμοποιήσετε σε ένα αρχείο παρτίδας των Windows, τον τρόπο εμφάνισης της σωστής σύνταξης και ένα ρεαλιστικό παράδειγμα για κάθε ένα.
Εάν είστε έτοιμοι να ξεκινήσετε τη δημιουργία σεναρίων, ας ξεκινήσουμε!
1. Συγκρίνετε τις τιμές
Ένα από τα βασικά πράγματα που συνήθως θα χρειαστεί να κάνετε σε ένα σενάριο δέσμης είναι να συγκρίνετε δύο τιμές και να ακολουθείτε μια διαφορετική πορεία δράσης ανάλογα με τη σύγκριση.
Για παράδειγμα, ας υποθέσουμε ότι θέλετε να γράψετε ένα δέσμη δέσμης ενεργειών που ελέγχει καθημερινά το μέγεθος του σκληρού δίσκου του υπολογιστή σας. Εάν είναι κάτω από 3 GB θέλετε να λάβετε μια αναφορά ηλεκτρονικού ταχυδρομείου που λέει, "Χώρος στο σκληρό δίσκο πολύ χαμηλό."
Για να δημιουργήσετε μια δέσμη ενεργειών που συγκρίνει τον τρέχοντα ελεύθερο χώρο στο σκληρό σας δίσκο με το όριο, θα πρέπει να δημιουργήσετε το ακόλουθο σενάριο παρτίδας και να το αποθηκεύσετε ως αρχείο .bat.
@echo off set DriveLimit=300000000 for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x Echo FreeSpace="%FreeSpace%" Echo Limit="%DriveLimit%" If %FreeSpace% GTR %DriveLimit% ( Echo There is enough free space. ) else ( Echo Not enough free space. )
Το WMIC είναι το στοιχείο Windows Management Instrumentation των Windows που συνοδεύει μια συλλογή εντολών που μπορείτε να χρησιμοποιήσετε για να τραβήξετε πληροφορίες για το PC. Έτσι, η εντολή "wmic" σε αυτή τη δέσμη ενεργειών ονομάζει το χώρο "logicaldisk" και το τοποθετεί στη μεταβλητή FreeSpace. Τώρα μπορείτε να αντικαταστήσετε τη γραμμή "Echo Not enough free space" με μια εντολή blat email για να σας στείλουμε μια ειδοποίηση.
Τέλος, ορίστε αυτό το σενάριο ως προγραμματισμένη εργασία παράθυρου που εκτελείται καθημερινά.
Εάν δεν έχετε χρησιμοποιήσει ποτέ blat πριν, έχουμε ένα άρθρο που σας δείχνει πώς να ρυθμίσετε blat. Δεν είστε εξοικειωμένοι με την οργάνωση προγραμματισμένων εργασιών; Έχουμε σας καλύψει με ένα άρθρο σχετικά με τον τρόπο ρύθμισης των προγραμματισμένων εργασιών των Windows 4 Boring Tasks Μπορείτε να αυτοματοποιήσετε με τον προγραμματιστή εργασιών των Windows 4 Boring Tasks Μπορείτε να αυτοματοποιήσετε με τον προγραμματιστή εργασιών των Windows Ο χρόνος σας είναι πολύτιμος για να χαθεί με επαναλαμβανόμενες εργασίες . Ας δούμε πώς μπορείτε να αυτοματοποιήσετε και να προγραμματίσετε εργασίες. Έχουμε και μερικά εξαιρετικά παραδείγματα. Διαβάστε περισσότερα .
2. Συγκρίσεις στοιχειοσειρών
Μια άλλη πολύτιμη σύγκριση IF που μπορείτε να κάνετε σε μια εργασία παρτίδας συγκρίνει τις συμβολοσειρές .
Στο παρακάτω παράδειγμα θα δείτε πώς μπορείτε να ελέγξετε την έκδοση των Windows χρησιμοποιώντας μια εργασία παρτίδας. Στη συνέχεια, μπορείτε να το συγκρίνετε με την αναμενόμενη έκδοση των Windows.
Ορισμένες χρήσεις αυτού του σεναρίου θα είναι για τους ελέγχους IT όταν πρέπει να εκτελέσετε γρήγορα μια δέσμη ενεργειών και να βεβαιωθείτε ότι το τρέχον λειτουργικό σύστημα είναι το τελευταίο ή αν χρειάζεται αναβάθμιση.
Ας δούμε τι φαίνεται αυτό το σενάριο.
@echo off for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j if "%version%" == "6.0" echo Windows Vista. if "%version%" == "6.1" echo Windows 7 if "%version%" == "6.2" echo Windows 8 if "%version%" == "6.3" echo Windows 8.1 if "%version%" == "10.0" echo Windows 10.
Ακολουθεί το αποτέλεσμα της εμφάνισης αυτής της δέσμης ενεργειών.
Η δυνατότητα σύγκρισης των συμβολοσειρών στη παρτίδα ανοίγει έναν ολόκληρο κατάλογο δυνατοτήτων. Εάν εξερευνήσετε όλες τις πληροφορίες που μπορείτε να αποκτήσετε από μια εντολή WMIC, θα δείτε πόσα στατιστικά στοιχεία για τον υπολογιστή σας μπορείτε να παρακολουθήσετε. Μπορείτε να χρησιμοποιήσετε προγραμματισμένες εργασίες παρτίδας για να ειδοποιήσετε για αυτές.
3. Ελέγξτε εάν υπάρχει ένα αρχείο
Μια άλλη χρήσιμη κατάσταση όπου μια εντολή IF σε ένα αρχείο δέσμης είναι να ελέγξει για την ύπαρξη ενός αρχείου δεδομένων .
Πολλές φορές η εργασία δέσμης είναι απλώς ένα εργαλείο παρακολούθησης που μπορεί να προγραμματιστεί να ελέγξει για νέα εισερχόμενα αρχεία δεδομένων σε έναν συγκεκριμένο κατάλογο.
Στη συνέχεια, η εργασία παρτίδας μπορεί είτε να αντιγράψει αυτό το αρχείο σε μια άλλη τοποθεσία όπου μπορεί να επεξεργαστεί είτε να ξεκινήσει μερικά παράθυρα δέσμης ενεργειών που επεξεργάζεται το αρχείο σε μια έξοδο του Excel.
(Έχουμε γράψει στο παρελθόν σχετικά με τον τρόπο χρήσης των σεναρίων των Windows για την επεξεργασία των δεδομένων σε ένα αρχείο Excel 5 Χρήσιμες VB Windows Scripts για την αυτοματοποίηση του υπολογιστή σας Χρήση 5 Χρήσιμες VB Windows Scripts για την αυτοματοποίηση του υπολογιστή σας Χρήση Από την παρακολούθηση του ιστοτόπου στις αναφορές συστήματος, για να αυτοματοποιήσετε όλα τα πράγματα με αυτά τα εκπληκτικά σενάρια VB που μπορείτε να κωδικοποιήσετε στα Windows αυτή τη στιγμή.
Χρησιμοποιώντας ένα αρχείο δέσμης για να ελέγξετε αν υπάρχει ένα αρχείο σε έναν κατάλογο είναι γρήγορο και εύκολο. Εδώ είναι αυτό που το σενάριο μοιάζει.
@echo off if exist c:\temp\datafile.txt ( %WINDIR%\SysWOW64\cmd.exe cscript LoadToExcel.vbs ) else ( rem file doesn't exist )
Η σύγκριση IF EXISTS είναι χρήσιμη για πολλά πράγματα.
Για παράδειγμα, εάν έχετε τρέξει ένα σύστημα ή μια εφαρμογή που δημιουργεί νέα αρχεία καταγραφής σφάλματος σε έναν συγκεκριμένο φάκελο όταν υπάρχει κάποιο πρόβλημα, μπορείτε να εκτελέσετε μια εργασία παρτίδας κάθε τόσο συχνά για να ελέγξετε αν δημιουργούνται νέα αρχεία καταγραφής σφαλμάτων, ώστε να μπορείτε να στείλετε μια ειδοποίηση.
4. Ελέγξτε αν μια εντολή απέτυχε
Μια πτυχή της δέσμης ενεργειών δέσμης αρχείων που χρησιμοποιούν πολύ λίγοι χρήστες IT ή προγραμματιστές ελέγχει για σφάλματα .
Υπάρχουν πολλές εργασίες παρτίδας που επιπλέουν γύρω εκεί έξω που εκτελούν κρίσιμα καθήκοντα πληροφορικής, όπως η δημιουργία αντιγράφων ασφαλείας σημαντικών αρχείων ή η εκτέλεση αντιγράφων. Όταν αυτές οι εργασίες παρτίδας αποτύχουν, τα συστήματα αποτυγχάνουν και οι άνθρωποι παρατηρούν.
Είναι πολύ πιο έξυπνο να λαμβάνετε μια προειδοποίηση όταν η δουλειά σας σε παρτίδα έχει αποτύχει μια εντολή πριν οι άνθρωποι αρχίσουν να παρατηρούν. Με αυτόν τον τρόπο μπορείτε να διορθώσετε το ζήτημα προληπτικά.
Μπορείτε να το κάνετε αυτό χρησιμοποιώντας τη μεταβλητή% errorlevel% που οι περισσότερες εφαρμογές και εντολές επιστρέφουν μετά την εκτέλεση τους.
Το μόνο που έχετε να κάνετε είναι να ακολουθήσετε την εντολή σας με την εντολή IF% ERRORLEVEL%. Αν η εφαρμογή ή η εντολή επέστρεψε μηδέν, όλα είναι καλά. Εάν όχι, τότε θα πρέπει να στείλετε ένα email.
@echo off xcopy C:\somefolder E:\backupfolder IF %ERRORLEVEL% NEQ 0
Δεν χρειάζεται να πάρετε τη διαδρομή ηλεκτρονικού ταχυδρομείου. Μπορείτε να γράψετε πάντα ένα αρχείο καταγραφής σφαλμάτων που μπορείτε να ελέγξετε κάθε πρωί ή να ξεκινήσετε μια δεύτερη εφαρμογή ή εντολή που προσπαθεί να κάνει το αντίγραφο χρησιμοποιώντας μια εναλλακτική εντολή. Όποια και αν είναι η ενέργεια που θέλετε να πάρετε, ΕΑΝ% ERRORLEVEL% σας επιτρέπει να το κάνετε.
Αν προτιμάτε να χρησιμοποιήσετε μια εντολή IF για να ελέγξετε για συγκεκριμένους κωδικούς σφάλματος, τα Windows παρέχουν μια αρκετά εκτεταμένη λίστα κωδικών σφαλμάτων.
5. Ελέγξτε για τις παραμέτρους που λείπουν
Η τελευταία χρήσιμη εντολή IF δεν είναι μια συγκεκριμένη εντολή, αλλά αντίθετα ελέγχει ότι το σενάριο έλαβε τις κατάλληλες παραμέτρους εισόδου .
Για παράδειγμα, ας πούμε ότι έχετε γράψει ένα σενάριο που εκτελεί μια εντολή xcopy από ένα φάκελο εισόδου, σε ένα κοινό φάκελο δικτύου που χρησιμοποιείται από μια ομάδα. Ο χρήστης πρέπει απλώς να ακολουθήσει το όνομα του σεναρίου σας με τις παραμέτρους που καθορίζουν τη δική του διαδρομή αρχείου.
Προφανώς, δεν μπορείτε να εκτελέσετε σωστά το σενάριό σας χωρίς την καθορισμένη διαδρομή, επομένως μπορείτε να βάλετε μια εντολή IF στην αρχή του σεναρίου σας για να βεβαιωθείτε ότι έχουν εισαχθεί και οι δύο παράμετροι.
Δείτε πώς φαίνεται αυτό.
@echo off IF [%1]==[] ( GOTO sub_message ) ELSE ( xcopy %1 E:\backupfolder ) GOTO eof :sub_message echo You forgot to specify your path. :eof
Αν δεν έχετε χρησιμοποιήσει ποτέ παραμέτρους με δέσμες ενεργειών δέσμης, το σύμβολο επί τοις εκατό που ακολουθείται από έναν αριθμό αντιπροσωπεύει τη μεταβλητή παραμέτρων. Το% 1 είναι η πρώτη παράμετρος, το% 2 είναι το δεύτερο, και ούτω καθεξής.
Οι εργασίες παρτίδας μπορεί να είναι ισχυρές
Πολλοί άνθρωποι αρχίζουν να χρησιμοποιούν εργασίες δέσμης για απλές εργασίες που πρέπει να εκτελεστούν σε σειρά. Με τις δηλώσεις IF είναι δυνατό να προσθέσετε πολύ περισσότερη νοημοσύνη στα σενάρια σας.
Φυσικά αν θέλετε πραγματικά να επιταχύνετε μια εγκοπή, μπορείτε να εξετάσετε το ενδεχόμενο να ρίξετε μια ματιά στο VBA με τον οδηγό μας για τη δημιουργία της πρώτης σας εφαρμογής VBA, ή ίσως ακόμη και να μάθετε τον προγραμματισμό της Python.
Μπορείτε να χρησιμοποιείτε συχνά πιο προηγμένες γλώσσες προγραμματισμού όπως αυτές ή να μάθετε να χρησιμοποιείτε το PowerShell. 5 λόγοι για τους οποίους πρέπει να χρησιμοποιήσετε το PowerShell αντί για τη δέσμη δέσμης ενεργειών. 5 λόγοι για τους οποίους πρέπει να χρησιμοποιήσετε το PowerShell αντί για τη δέσμη ενεργειών δέσμης ενεργειών PowerShell είναι αυτό που θα κάνατε αν περάσατε τη γραμμή εντολών Batch Scripting, έριξε μερικά επιπλέον χαρακτηριστικά, και κλώτσησε όλα τα πολλά κομμάτια. Ακολουθούν αρκετοί λόγοι για να το δοκιμάσετε. Διαβάστε περισσότερα, για να ολοκληρώσετε πολλές από τις ίδιες εργασίες που χρησιμοποιείτε αυτήν τη στιγμή εργασίες για παρτίδες.