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.