El comando if nos sirve para hacer bifurcaciones en nuestros programas batch. Existen varias sintaxis distintas, en este post usaremos el if para comparar dos cadenas, para comprobar la existencia o no existencia de un archivo,  y para hacer comparaciones numéricas.

Comparando cadenas.

Primeramente vamos a usar para comprobar cadenas. La sintaxis es la siguiente:

If cadena1==cadena2 orden

En caso de que ambas cadenas sean iguales se ejecutara la orden, en caso contrario el programa seguirá su ejecución en la línea de abajo. Lo ejemplificaremos con un programa.

Vamos a pedir un nombre de usuario y lo almacenaremos en la variable login, el valor suministrado por el usuario desde el teclado se comprobará con una cadena, si las cadenas coinciden, es decir que el if ofrece un resultado verdadero, se ejecutara el resto de la línea donde se encuentra la sentencia if, que es una instrucción goto que llevara el flujo de programa a una etiqueta llamada verdadero. En caso contrario el programa seguirá su ejecución en la línea siguiente.  En la línea siguiente se manda un mensaje a pantalla avisando que el nombre de usuario no es válido y se hace uso nuevamente de una instrucción goto que lleva el flujo del programa a una etiqueta que se llama inicio para volver a pedir el nombre de usuario. En la etiqueta verdadero simplemente se manda un mensaje a pantalla donde se dice que el usuario si es registrado y finaliza el programa.

Veamos un par de capturas de pantalla una proporcionando un nombre no registrado y la segunda proporcionando el nombre de usuario “gloria”  que si es registrado.

En la captura anterior de la ejecución del programa se proporciona el nombre de usuario christian, cuando se compara con la cadena gloria, produce un resultado falso de la bifurcación, por lo que el programa lleva el flujo nuevamente a pedir el nombre del usuario, y en ese estado se sostendrá hasta que se proporcione como nombre de usuario gloria, entonces las cadenas coincidirán y la bifurcación dara verdadera, provocando la impresión final “Usuario registrado” y la conclusión del programa, tal y como se muestra en la siguiente captura:

Negando comprobación de cadenas.

La segunda opción de uso de la sentencia if, es similar a la anterior, únicamente que ahora negaremos la comprobación de dos cadenas, compararemos dos cadenas, y si estas NO son iguales, entonces se ejecutará la orden en seguida de la sentencia if, en caso contrario, se ejecutará la línea de abajo.

Sintaxis:

If not cadena1==cadena2  orden

Veamos un ejemplo de esto:

Comprobación de existencia de ficheros

Con el if también podemos comprobar la existencia de un archivo, en determinado directorio. Vamos a ejemplificarlo con un script:

Explicamos línea por línea:

 

  1. Primeramente ponemos la línea “@echo off “ para eliminar el eco de los comandos,ínea:
  2. or lliar el eco de los comandos,archivo, en determinado directorio.
  3. En la segunda línea mandamos una línea a pantalla pidiendo el nombre del fichero,
  4. En la tercer línea con la instrucción “set /p” almacenamos el nombre del fichero a buscar en la variable “archivo”,
  5. A partir de la 4 línea hasta la 8va línea hacemos la bifurcación para comprobar la existencia del archivo, se tiene que poner el identificador de la variable entre símbolos de porcentaje %,
  6. Se tiene que agregar la palabra reservada “exist” después de if para que se compruebe si existe el archivo, inmediatamente después de la palabra exist, se colocar el identificador de la variable encerrado entre  símbolos de porcentaje.
  7. Encerramos entre paréntesis la acción que tomaría en caso de que el archivo existiera, que consiste en imprimir que el archivo existe, acompañando a esta cadena vendrá el valor de la variable que almacena el nombre del archivo.
  8. Inmediatamente después se coloca la palabra “else” que es el caso contrario e inmediatamente después se coloca entre paréntesis la acción que se haría en caso de que el archivo no existiera, que  es la impresión de un mensaje indicándolo.

Vemos una captura del programa en ejecución:

En la primera vez que ejecutamos el programa  se proporciona el nombre de un archivo que no existe “carta”,  y el programa indica la NO existencia del archivo.

En la segunda vez que se ejecuta el programa se proporciona el nombre de un archivo que si existe “01.bat” el programa lo indica con un mensaje.

La comprobación de la existencia o no del archivo, se hará en el mismo directorio donde se encuentra el script. No obstante con este script se puede comprobar la existencia de cualquier archivo o directorio en cualquier parte del árbol de directorios, solamente hay que colocar la ruta completa del fichero o directorio a comprobar:

Comprobaciones numéricas

Con la instrucción if también se pueden realizar comparaciones numéricas, para esto se tienen que usar los siguientes códigos de comparación:

EQU – igual

NEQ – no igual

LSS – menor que

LEQ – menor que o igual

GTR – mayor que

GEQ – mayor que o igual

Vamos a hacer algunos scripts para demostrarlo, primeramente vamos a hacer un programa si dos números pedidos son iguales:

La instrucción “equ” evalúa si el contenido numérico de la variable num1, es igual al contenido de la variable num2.

Veamos el programa corriendo:

En la primera vez que corremos el programa proporcionamos valores diferentes para cada una de las variables num1 y num2, por lo que el programa nos manda un mensaje diciendo que los números son diferentes.

En la segunda vez que corremos el programa proporcionamos dos números iguales, esta vez el programa nos dice que los números son iguales.

 

Veamos un segundo ejemplo, ahora usando el código neq, este código comprueba que dos números no sean iguales, usemos el mismo programa, pero esta vez en la condición del if no se comprobara si los números son iguales, si no se comprobara que los números sean diferentes:

Veamos corriendo el programa:

La primera vez que ejecutamos el programa proporcionamos dos números diferentes, por lo que la condición del if se cumple y nos imprime que los números NO son iguales, la segunda vez que corremos el programa proporcionamos números iguales, por lo que en esta ocasión la condición no se cumple y se ejecuta la instrucción que colocamos en “else”, que indica que los número son iguales.

Ahora utilicemos el código lss, que evalúa si un numero es menor que otro, en el siguiente ejemplo vamos a pedir la nota de un alumno obtenida en una materia.  Si la calificación obtenida es menor a 70, entonces se imprimirá el mensaje informando que no se acredito la materia, en caso contrario se informara con un mensaje que si paso la materia, veamos el código:

Ahora veamos la ejecución del programa:

El siguiente código es leq, que significa menor o igual que, vamos a ejemplificarlo con un programa que pida el porcentaje de asistencia de un alumno, si el alumno no reúne el 80 % de asistencia reprueba un curso, es decir, si tiene 79 o menos no alcanza a acreditar, en este caso es factible utilizar el código leq. Veamos el código:

Con cualquier porcentaje que sea igual o inferior a 79, mostrará el mensaje que el alumno no acreditó la materia, cualquier porcentaje que sea superior a 79 mostrará el mensaje que el alumno si acredito la materia.

 

Veamos el programa en ejecución.

En las dos primeras veces que ejecutamos el programa se dan valores para el porcentaje de asistencia de 80% o superior, por lo que el mensaje mostrado es que el alumno si acredita la materia, en la tercer ejecución del programa se suministra un valor menor o igual a 79, por lo que el mensaje enviado es que no acredita la materia.

 

El próximo código es GTR, que significa mayor que. Para ejemplificarlos vamos a hacer un programa en el que se pida la cantidad de extraordinarios que un alumno ha incurrido, un alumno tiene derecho a presentar hasta 3 extraordinarios, si la cantidad de extraordinarios excede 3, se debe de mostrar un mensaje que esta dado de baja de la institución, en caso contrario mostrará un mensaje que diga que continua en la institución. Veamos el código:

Veamos el programa en ejecución:

Las primeras dos veces que ejecutamos el programa suministramos que no  son mayores a 3, por lo que el mensaje es que el alumno sigue en la institución, la tercera vez que se ejecuta el programa se da una cantidad de extraordinarios mayor a 3, por lo que el mensaje recibido por el programa es que el alumno esta dado de baja de la institución.

Finalmente el código geq significa mayor o igual que,  vamos a ejemplificarlo con un programa que pida la edad de una persona, y si esta es mayor o igual a 18, que imprima el mensaje “es mayor de edad”, en caso contrario que imprima el mensaje “aun no es mayor de edad”. Veamos el código.

Veamos la ejecución del programa:

Y esto es todo por esta ocasión, espero comentarios y dudas.

 

 

 

 

 

 

 

 

 

 

 

 

 

Powered By DT Author Box

Written by chris

IF BIFURCACIONES EN BATCH.

2 thoughts on “IF BIFURCACIONES EN BATCH.

Leave a Reply

Follow

Get every new post delivered to your Inbox

Join other followers:

%d bloggers like this: