La automatización de tareas es una de las aplicaciones más poderosas de REXX. En este módulo, aprenderás cómo utilizar REXX para automatizar tareas repetitivas y mejorar la eficiencia de tus procesos. Exploraremos ejemplos prácticos y proporcionaremos ejercicios para que puedas aplicar lo aprendido.
Objetivos del Módulo
- Comprender los conceptos básicos de la automatización de tareas.
- Aprender a escribir scripts REXX para automatizar tareas comunes.
- Conocer las mejores prácticas para la automatización con REXX.
Conceptos Clave
- Automatización de Tareas: Uso de scripts para realizar tareas repetitivas sin intervención manual.
- Scripts REXX: Programas escritos en REXX que ejecutan una serie de comandos automáticamente.
- Interacción con el Sistema Operativo: Capacidad de REXX para ejecutar comandos del sistema operativo y manipular archivos.
Ejemplo Práctico: Automatización de Copia de Archivos
Paso 1: Definir el Problema
Queremos crear un script REXX que copie archivos de una carpeta a otra automáticamente.
Paso 2: Escribir el Script
/* Script REXX para copiar archivos de una carpeta a otra */ sourceDir = 'C:\source\' targetDir = 'C:\target\' /* Obtener la lista de archivos en el directorio fuente */ call SysFileTree sourceDir || '*', 'fileList.', 'FO' /* Iterar sobre cada archivo y copiarlo al directorio destino */ do i = 1 to fileList.0 sourceFile = fileList.i targetFile = targetDir || strip(sourceFile, 'L', sourceDir) call SysCopyObject sourceFile, targetFile say 'Archivo copiado:' sourceFile '->' targetFile end say 'Copia de archivos completada.' exit 0
Explicación del Código
- Definición de Directorios: Se definen las rutas de los directorios fuente (
sourceDir
) y destino (targetDir
). - Obtención de la Lista de Archivos:
SysFileTree
es una función integrada que obtiene la lista de archivos en el directorio fuente. - Iteración y Copia de Archivos: Se itera sobre cada archivo en
fileList.
y se copia al directorio destino usandoSysCopyObject
. - Mensajes de Estado: Se imprimen mensajes en la consola para indicar el progreso de la copia.
Ejercicio Práctico
Objetivo: Modificar el script anterior para que también registre los nombres de los archivos copiados en un archivo de log.
Instrucciones:
- Añade una variable para el nombre del archivo de log.
- Abre el archivo de log en modo de escritura.
- Escribe el nombre de cada archivo copiado en el archivo de log.
- Cierra el archivo de log al final del script.
Solución:
/* Script REXX para copiar archivos de una carpeta a otra y registrar en un log */ sourceDir = 'C:\source\' targetDir = 'C:\target\' logFile = 'C:\log\copy_log.txt' /* Abrir el archivo de log */ logStream = open(logFile, 'w') /* Obtener la lista de archivos en el directorio fuente */ call SysFileTree sourceDir || '*', 'fileList.', 'FO' /* Iterar sobre cada archivo y copiarlo al directorio destino */ do i = 1 to fileList.0 sourceFile = fileList.i targetFile = targetDir || strip(sourceFile, 'L', sourceDir) call SysCopyObject sourceFile, targetFile say 'Archivo copiado:' sourceFile '->' targetFile /* Escribir en el archivo de log */ call lineout logStream, 'Archivo copiado:' sourceFile '->' targetFile end /* Cerrar el archivo de log */ call close logStream say 'Copia de archivos completada.' exit 0
Retroalimentación y Consejos
- Errores Comunes: Asegúrate de que las rutas de los directorios y el archivo de log sean correctas. Un error común es olvidar las barras invertidas (
\
) al final de las rutas. - Consejo Adicional: Utiliza variables para las rutas y nombres de archivos para facilitar la modificación del script en el futuro.
Conclusión
En esta sección, hemos aprendido cómo utilizar REXX para automatizar la copia de archivos entre directorios y registrar la actividad en un archivo de log. La automatización de tareas con REXX puede ahorrarte tiempo y reducir errores en procesos repetitivos. En el próximo tema, exploraremos cómo crear utilidades más complejas con REXX.
Resumen del Módulo:
- La automatización de tareas con REXX permite realizar procesos repetitivos de manera eficiente.
- Aprendimos a escribir un script para copiar archivos y registrar la actividad en un archivo de log.
- Practicamos la manipulación de archivos y la interacción con el sistema operativo.
Prepárate para el siguiente tema, donde profundizaremos en la creación de utilidades con REXX.
Curso de Programación REXX
Módulo 1: Introducción a REXX
- ¿Qué es REXX?
- Configuración del Entorno REXX
- Hola Mundo en REXX
- Sintaxis y Estructura Básica
- Variables y Tipos de Datos
Módulo 2: Conceptos Básicos de Programación
- Operadores y Expresiones
- Estructuras de Control: IF/THEN/ELSE
- Bucles: DO y LEAVE
- Entrada y Salida
- Manipulación Básica de Cadenas
Módulo 3: Programación Intermedia en REXX
- Funciones y Subrutinas
- Funciones Integradas
- Manejo de Errores
- Operaciones de Entrada/Salida de Archivos
- Trabajando con Arreglos
Módulo 4: Programación Avanzada en REXX
- Manipulación Avanzada de Cadenas
- Técnicas de Análisis
- Interfaz con Programas Externos
- Macros en REXX
- Optimización del Rendimiento