Si les extensions de commandes sont activées, IF est modifié comme suit : IF /I Chaîne1 op-de-comp Chaîne2 commande IF CMDEXTVERSION ...

Si les extensions de commandes sont activées, IF est modifié comme suit :

    IF [/I] Chaîne1 op-de-comp Chaîne2 commande
    IF CMDEXTVERSION nombre commande
    IF DEFINED variable commande

où op-de-comp peut être :

    EQU - égal à
    NEQ - différent de
    LSS - inférieur à
    LEQ - inférieur ou égal à
    GTR - supérieur à
    GEQ - supérieur ou égal à

et le commutateur /I, s'il est spécifié, demande d'ignorer la casse dans la
comparaison des chaînes. Le commutateur /I peut également être utilisé pour
la forme Chaîne1==Chaîne2 de IF. Ces comparaisons sont génériques : si les
chaînes Chaîne1 et Chaîne2 sont toutes deux constituées uniquement de chiffres,
alors elles sont converties en nombres, et une comparaison numérique est
alors effectuée.

La condition CMDEXTVERSION marche comme ERRORLEVEL, sauf qu'elle compare
à un numéro de version interne associé aux extensions de commandes. La
première version des extensions est 1. Ce numéro sera incrémenté de un à
chaque amélioration significative. La condition CMDEXTVERSION n'est jamais
vraie lorsque les extensions de commandes sont désactivées.

La condition DEFINED fonctionne comme EXIST, sauf qu'elle prend un nom de
variable d'environnement et renvoie vrai si la variable d'environnement
est définie.