Comando: if

  IF realiza el procesamiento condicional en programas por lotes.
  IF es un comando de PROGRAMAS POR LOTES / AUTOEXEC.BAT.
  También se puede utiliar en la línea de comandos.

Sintaxis:

  IF [NOT] ERRORLEVEL Numero comando
  IF [NOT] cadena1==cadena2 comando
  IF [NOT] EXIST nombre_archivo comando
     unidad          La letra de la unidad, p.ej. C:
     ruta            El directorio, p.ej. \ejemplo\
     nombre_archivo  El archivo, p.ej. texto.txt

Opciones:

  NOT                  Especifica que comando del shell se tiene que
                       llevar a cabo, sólo se ejecuta si la condición es
                       falsa. (Sin esto, el comando se ejecutará si la
                       condición es cierta)
  ERRORLEVEL Número    Especifica una condición verdadera si se ejecuta el
                       último programa devolviendo un código de salida 
                       igual o mayor que el número especificado.
  comando              Espcifica el comando a ejecutar si la condición se
                       cumple.
  cadena1==cadena2     Especifica una condición verdadera si el texto 
                       especificado en las cadenas coinciden.
  EXIST nombre_archivo Especifica una condición verdadera si el nombre del
                       archivo especificado existe.

Comentarios:

  ERRORLEVEL numero:   Los programas de DOS devuelven un número cuando
                       salen, que a veces contiene información sobre si el
                       programa fue exitoso. Si el último programa para
                       salir devolvió el número dado, entonces la 
                       condición es verdadera.
  cadena1==cadena2     Si las dos cadenas de caracteres son iguales,
                       entonces la condición es verdadera.
  exist [unidad][ruta] Si el archivo dado está ahí, entonces la condición
        nombre_archivo es verdadero.

  IF es un comando interno de command.com y no necesita otro archivo para
  que funcione.

Ejemplos:

  EN UN ARCHIVO .BAT / AUTOEXEC.BAT:
    if exist c:\kernel.sys ECHO nucleo existe 
                  (da un mensaje si el nucleo existe)
    set A=freedos
    set B=freedos
    set C=otherdos
    if %A%==%B% ECHO A y B son la misma cadena  
                  (A y B son "freedos", por lo que aparecerá el mensaje)
    if %A%==%C% ECHO A y C son la misma cadena
                  (A es "freedos", C es "otherdos", entonces no apacererá
                  mensaje)
    if not %A%==%C% ECHO A y C no son la misma cadena 
                  (A es "freedos", C es "otherdos", ya que NO son el mismo
                  mensaje, aparecerá el mensaje)

Ver también:

  autoexec.bat
  archivo por lotes
  choice
  goto

  Copyright © 2003 Robert Platt, Modificado en 2007 por W. Spiegl.
  Traducido en 2018 por Lorenzo del Toro Saravia.

  Este archivo se deriva del FreeDOS Spec Command HOWTO.
  Ver el archivo H2Cpying para las condiciones de copiado.