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

  1. Automatización de Tareas: Uso de scripts para realizar tareas repetitivas sin intervención manual.
  2. Scripts REXX: Programas escritos en REXX que ejecutan una serie de comandos automáticamente.
  3. 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

  1. Definición de Directorios: Se definen las rutas de los directorios fuente (sourceDir) y destino (targetDir).
  2. Obtención de la Lista de Archivos: SysFileTree es una función integrada que obtiene la lista de archivos en el directorio fuente.
  3. Iteración y Copia de Archivos: Se itera sobre cada archivo en fileList. y se copia al directorio destino usando SysCopyObject.
  4. 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:

  1. Añade una variable para el nombre del archivo de log.
  2. Abre el archivo de log en modo de escritura.
  3. Escribe el nombre de cada archivo copiado en el archivo de log.
  4. 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.

© Copyright 2024. Todos los derechos reservados