Γραμμή εντολών MS-DOS και Windows εάν υπάρχει εντολή

Πίνακας περιεχομένων:

Γραμμή εντολών MS-DOS και Windows εάν υπάρχει εντολή
Γραμμή εντολών MS-DOS και Windows εάν υπάρχει εντολή

Βίντεο: 5 πολύ χρήσιμες εντολές (CMD) (1) 2024, Ενδέχεται

Βίντεο: 5 πολύ χρήσιμες εντολές (CMD) (1) 2024, Ενδέχεται
Anonim

Η εντολή if εκτελεί υπό όρους επεξεργασία σε προγράμματα δέσμης.

Διαθεσιμότητα

Η εντολή if είναι μια εσωτερική εντολή προσπελάσιμη και χρησιμοποιείται σε αρχεία δέσμης.

  • Windows 95
  • Windows 98
  • Windows NT
  • Windows XP
  • Windows 2000
  • Windows Vista
  • Windows 7
  • παράθυρα 8
  • Windows 10

Σύνταξη

  • Σύνταξη των Windows Vista και νεότερη.
  • Windows XP και παλαιότερη σύνταξη.

Σύνταξη των Windows Vista και νεότερη

IF [NOT] ERRORLEVEL number command IF [NOT] string1 == string2 command IF [NOT] EXIST όνομα αρχείου

ΔΕΝ Καθορίζει ότι τα Windows 2000 ή XP πρέπει να εκτελούν την εντολή μόνο εάν η συνθήκη είναι ψευδής.
Αριθμός ERRORLEVEL Καθορίζει μια πραγματική κατάσταση εάν η τελευταία εκτέλεση του προγράμματος επέστρεψε έναν κωδικό εξόδου ίσο ή μεγαλύτερο από τον καθορισμένο αριθμό.
string1 == string2 Καθορίζει μια πραγματική κατάσταση εάν τα καθορισμένα συμβολοσειρά κειμένου ταιριάζουν.
ΥΠΑΡΧΕΙ όνομα αρχείου Καθορίζει μια πραγματική κατάσταση εάν υπάρχει το καθορισμένο όνομα αρχείου.
εντολή Καθορίζει την εντολή που πρέπει να εκτελεστεί εάν πληρούται η συνθήκη. Η εντολή μπορεί να ακολουθηθεί από την εντολή ELSE που θα εκτελέσει την εντολή μετά τη λέξη-κλειδί ELSE εάν η καθορισμένη συνθήκη είναι FALSE.

Η ρήτρα ELSE πρέπει να εμφανίζεται στην ίδια γραμμή με την εντολή μετά το IF. Για παράδειγμα:

ΕΑΝ ΥΠΑΡΧΕΙ το όνομα αρχείου. (del filename.) ELSE (όνομα echo. λείπει.)

Το παρακάτω παράδειγμα ΔΕΝ θα λειτουργούσε επειδή η εντολή del πρέπει να τερματιστεί από μια νέα γραμμή:

ΕΑΝ ΥΠΑΡΧΕΙ το όνομα αρχείου. del όνομα αρχείου. Όνομα αρχείου echo echo. λείπει

Ούτε το παρακάτω παράδειγμα θα λειτουργούσε, επειδή η εντολή ELSE πρέπει να βρίσκεται στην ίδια γραμμή με το τέλος της εντολής IF:

ΕΑΝ ΥΠΑΡΧΕΙ το όνομα αρχείου. del όνομα αρχείου. Όνομα αρχείου echo echo. λείπει

Το παρακάτω παράδειγμα θα λειτουργούσε εάν θέλετε όλα σε μία γραμμή:

ΕΑΝ ΥΠΑΡΧΕΙ το όνομα αρχείου. (del filename.) ELSE echo filename. λείπει

Εάν οι επεκτάσεις εντολών είναι ενεργοποιημένες, η IF αλλάζει ως εξής:

IF [/ I] string1 σύγκριση-op string2 εντολή IF CMDEXTVERSION εντολή αριθμού IF DEFINED μεταβλητή εντολή

όπου το σύγκριση-op μπορεί να είναι ένα από:

  • EQU - ίσο
  • NEQ - όχι ίσο
  • LSS - λιγότερο από
  • LEQ - μικρότερο ή ίσο
  • GTR - μεγαλύτερο από
  • GEQ - μεγαλύτερο από ή ίσο

και ο διακόπτης / I, εάν καθορίζεται, λέει ότι πρέπει να συγκρίνει συμβολοσειρά χωρίς ευαισθησία. Ο διακόπτης / I μπορεί επίσης να χρησιμοποιηθεί στη μορφή string1 == string2 του IF. Αυτές οι συγκρίσεις είναι γενικές, αν και οι συμβολοσειρές1 και string2 αποτελούνται από όλα τα αριθμητικά ψηφία, τότε μετατρέπονται σε αριθμούς και πραγματοποιείται μια αριθμητική σύγκριση.

Το CMDEXTVERSION υπό όρους λειτουργεί όπως το ERRORLEVEL, εκτός του ότι συγκρίνεται με έναν εσωτερικό αριθμό έκδοσης που σχετίζεται με τις επεκτάσεις εντολών. Η πρώτη έκδοση είναι 1. Θα αυξηθεί από μία όταν σημαντικές βελτιώσεις προστίθενται στις επεκτάσεις εντολών. Το CMDEXTVERSION υπό όρους δεν ισχύει ποτέ όταν οι επεκτάσεις εντολών είναι απενεργοποιημένες.

Το DEFINED υπό όρους λειτουργεί όπως EXISTS, εκτός από το ότι παίρνει ένα όνομα μεταβλητής περιβάλλοντος και επιστρέφει αληθές εάν ορίζεται η μεταβλητή περιβάλλοντος.

Το% ERRORLEVEL% επεκτείνεται σε μια συμβολοσειρά της τρέχουσας τιμής του ERRORLEVEL, υπό την προϋπόθεση ότι δεν υπάρχει ήδη μια μεταβλητή περιβάλλοντος με το όνομα ERRORLEVEL, οπότε λαμβάνετε την τιμή της. Μετά την εκτέλεση ενός προγράμματος, το παρακάτω παράδειγμα δείχνει τη χρήση του ERRORLEVEL:

goto answer% ERRORLEVEL%: answer0 echo Το πρόγραμμα είχε κωδικό επιστροφής 0: answer1 echo Το πρόγραμμα είχε κωδικό επιστροφής 1

Μπορείτε επίσης να χρησιμοποιήσετε τις παρακάτω αριθμητικές συγκρίσεις:

ΕΑΝ% ERRORLEVEL% LEQ 1 πήγαινε εντάξει

Το% CMDCMDLINE% επεκτείνεται στη γραμμή εντολών που έχει περάσει στο CMD.EXE πριν από οποιαδήποτε επεξεργασία από το CMD.EXE, υπό την προϋπόθεση ότι δεν υπάρχει μεταβλητή περιβάλλοντος CMDCMDLINE, οπότε λαμβάνετε την τιμή της.

Το% CMDEXTVERSION% επεκτείνεται σε μια συμβολοσειρά της τιμής του CMDEXTVERSION, υπό την προϋπόθεση ότι δεν υπάρχει ήδη μια μεταβλητή περιβάλλοντος με το όνομα CMDEXTVERSION, οπότε λαμβάνετε την τιμή της.

Windows XP και παλαιότερη σύνταξη

Εκτελεί επεξεργασία υπό όρους σε προγράμματα παρτίδας.

IF [NOT] ERRORLEVEL number command IF [NOT] string1 == string2 command IF [NOT] EXIST όνομα αρχείου

ΔΕΝ Καθορίζει ότι τα Windows θα πρέπει να εκτελούν την εντολή μόνο εάν η συνθήκη είναι λανθασμένη.
Αριθμός ERRORLEVEL Καθορίζει μια πραγματική κατάσταση εάν η τελευταία εκτέλεση του προγράμματος επέστρεψε έναν κωδικό εξόδου ίσο ή μεγαλύτερο από τον καθορισμένο αριθμό.
εντολή Καθορίζει την εντολή που πρέπει να εκτελεστεί εάν πληρούται η συνθήκη.
string1 == string2 Καθορίζει μια πραγματική κατάσταση εάν τα καθορισμένα συμβολοσειρά κειμένου ταιριάζουν.
ΥΠΑΡΧΕΙ όνομα αρχείου Καθορίζει μια πραγματική κατάσταση εάν υπάρχει το καθορισμένο όνομα αρχείου.