Batch Script – If/Else: Control de Flujo en Tus Scripts
Los scripts de Batch, aunque simples en su esencia, ofrecen la posibilidad de controlar el flujo de ejecución de las instrucciones a través de la sentencia if/else. Esta poderosa herramienta permite que tus scripts tomen decisiones basadas en condiciones específicas, haciendo que sean más flexibles y adaptables a diferentes escenarios. En este artículo, profundizaremos en el uso de if/else in batch, explorando su sintaxis, ejemplos prácticos y casos de uso específicos.
La Sintaxis del If/Else en Batch
La estructura básica de una sentencia if/else in batch es bastante sencilla:
batch
if condición (
instrucciones si la condición es verdadera
) else (
instrucciones si la condición es falsa
)
La condición es una expresión que se evalúa como verdadera o falsa. Si la condición es verdadera, se ejecutan las instrucciones dentro del bloque if. Si la condición es falsa, se ejecutan las instrucciones dentro del bloque else. La sintaxis ( ) es opcional, pero se recomienda para una mejor legibilidad, especialmente en scripts complejos.
Evaluando Condiciones en Batch
Las condiciones en las sentencias if/else in batch se basan en comparaciones de valores, utilizando operadores como:
- ==: Igualdad
- !=: Desigualdad
- <: Menor que
- >: Mayor que
- <=: Menor o igual que
- >=: Mayor o igual que
Además de estos operadores básicos, puedes usar if defined para comprobar si una variable está definida y if exists para verificar la existencia de un archivo.
Ejemplos Prácticos de If/Else
Veamos algunos ejemplos de cómo utilizar la sentencia if/else en scripts de Batch:
1. Comparación Numérica
batch
@echo off
set /p numero=Ingresa un número:
if %numero% GTR 10 (
echo El número es mayor que 10
) else (
echo El número es menor o igual a 10
)
pause
Este script solicita un número al usuario y luego lo compara con 10. Si el número es mayor que 10, muestra un mensaje indicando que es mayor. Si no, muestra un mensaje indicando que es menor o igual a 10.
2. Comparación de Texto
batch
@echo off
set nombre=Juan
if %nombre%==Pedro (
echo ¡Hola Pedro!
) else (
echo ¡Hola %nombre%!
)
pause
Este script compara el valor de la variable nombre con «Pedro». Si son iguales, muestra un saludo personalizado para Pedro. Si no, muestra un saludo genérico usando el valor de la variable nombre.
3. Validación de Argumentos de Línea de Comando
batch
@echo off
if "%1"=="" (
echo Debes proporcionar un argumento.
) else (
echo El argumento es: %1
)
pause
Este script verifica si se proporcionó un argumento de línea de comando. Si no se proporcionó, muestra un mensaje de error. Si se proporcionó, muestra el valor del argumento.
4. Verificación de Variables
batch
@echo off
if defined variable (
echo La variable "variable" está definida.
) else (
echo La variable "variable" no está definida.
)
pause
Este script verifica si la variable variable está definida. Si está definida, muestra un mensaje indicando que la variable está definida. Si no, muestra un mensaje indicando que la variable no está definida.
5. Verificación de Archivos
batch
@echo off
if exist archivo.txt (
echo El archivo "archivo.txt" existe.
) else (
echo El archivo "archivo.txt" no existe.
)
pause
Este script verifica si el archivo archivo.txt existe. Si existe, muestra un mensaje indicando que el archivo existe. Si no, muestra un mensaje indicando que el archivo no existe.
Sentencias Anidadas de If/Else
Puedes anidar sentencias if/else in batch para crear estructuras de decisión más complejas:
batch
@echo off
set /p numero=Ingresa un número:
if %numero% GTR 10 (
echo El número es mayor que 10
if %numero% GTR 20 (
echo ¡El número es mayor que 20!
)
) else (
echo El número es menor o igual a 10
)
pause
Este script verifica primero si el número es mayor que 10. Si lo es, realiza una segunda verificación para determinar si es mayor que 20. Esta estructura permite una evaluación en cascada de condiciones.
Conclusión
La sentencia if/else es una herramienta esencial para crear scripts de Batch dinámicos y flexibles. Permite a tus scripts tomar decisiones basadas en condiciones específicas, mejorando su capacidad de respuesta a diferentes situaciones. La capacidad de comparar valores numéricos y de texto, validar argumentos de línea de comandos, verificar la existencia de variables y archivos, y anidar sentencias if/else abre un amplio abanico de posibilidades para automatizar tareas y controlar el flujo de ejecución de tus scripts.