Automatización condicional en Batch: Ejecutar scripts según hora y fecha

En ocasiones, necesitamos que nuestros scripts se ejecuten solo bajo circunstancias muy específicas. Por ejemplo, ¿qué tal si tu tarea automatizada debe correr únicamente antes de cierta hora del día y solo en días concretos? Esta técnica te permite implementar una lógica condicional robusta directamente dentro del entorno de Windows.

Esquema técnico mostrando el flujo lógico de un script batch con nodos de decisión para hora y fecha.
Diagrama del flujo de lógica para la automatización condicional en Batch.

La lógica detrás de la ejecución

El concepto es sencillo pero poderoso. Para que el script se ejecute, deben cumplirse dos requisitos simultáneos: primero, la hora actual debe ser menor a un límite establecido (por ejemplo, las 18:30), y segundo, la fecha del sistema debe coincidir exactamente con una entrada en un archivo de texto predefinido.

Implementación práctica

A continuación presentamos el código batch que hace todo esto. El script obtiene la hora actual mediante variables nativas como %time% y compara el valor contra tu límite temporal. Luego, utiliza el comando findstr para buscar si la fecha actual existe dentro del archivo de texto.

Ilustración destacando el comando findstr y la estructura goto en un fragmento de código batch.
Detalle del código Batch mostrando la lógica de verificación y los comandos clave.

Si ambas condiciones se cumplen, el script avanza y ejecuta la tarea deseada. Si no, simplemente salta a una etiqueta de finalización para evitar errores innecesarios.

Consideraciones sobre el sistema

Es importante tener en cuenta que las variables de fecha en Windows pueden variar según la configuración regional del usuario. En este ejemplo específico, asumimos que el formato del sistema coincide con el archivo de texto (DD-MM-YYYY).

Vista del archivo de texto con las fechas marcadas como activas en el sistema.
Representación visual del archivo de texto que contiene las fechas válidas para la ejecución.

Para hacer la solución más robusta y evitar problemas si los formatos cambian, se puede implementar una versión que utilice herramientas como wmic o powershell. Esto asegura que el script obtenga la fecha en un formato fijo, independientemente de las configuraciones regionales.

Gráfico comparativo mostrando la diferencia entre formatos regionales y métodos robustos de obtención de fecha.
Comparativa entre el formato de fecha regional y el uso de wmic para mayor robustez en scripts.
Vista de una ventana de terminal ejecutando el script después de validar los parámetros.
Ejecución del script principal tras cumplir con las condiciones de hora y fecha.

Esta flexibilidad hace que tus scripts sean mucho más fiables y fáciles de mantener en entornos productivos.