martes, 15 de abril de 2014

QSHELL para recuperar e importar a un fichero la lista de archivos de una carpeta del IFS.

   Recientemente me encontré con una situación en la que necesitaba recuperar en un fichero la relación de archivos que contenía una carpeta del IFS, por lo que decidí hacerlo usando comandos del interprete de comandos QSHELL que tiene el AS400, así que comparto aquí la forma en la que lo hice por si a alguien le es de utilidad. Es muy fácil.

   A continuación vemos las poquitas sentencias CL necesarias para éste ejemplo:

CRTPF      FILE(LIBRERIA/ARCHIVO) RCDLEN(1024)
MONMSG     MSGID(CPF0000)                        
CHGVAR     VAR(&CMD) VALUE('ls -R /FTP/*.cbs > /qsys.lib/libreria.lib/archivo.file/archivo.mbr')
STRQSH     CMD(&CMD)                              
MONMSG     MSGID(CPF0000 QSH0006 QSH0007) EXEC(DO)
(TRATAMIENTO DE ERRORES)
ENDDO

   Si todo ha ido bien, el interprete QSHELL nos habrá dejado en LIBRERIA/ARCHIVO una relación de todos los archivos tipo *.cbs (por ejemplo) y ya podremos tratar cada registro.

     Lógicamente el comando acepta múltiples parámetros, esto es sólo un ejemplo de la aplicación de QSH o QSHELL para acometer una solución puntual, pero tanto el comando ls como QSH en general tiene muchos más comandos y posibilidades.

   Qshell is un conjunto de utilidades basadas en estándares POSIX and X/Open que forman parte del entorno QSHELL i5/OS PASE (Portable Application Solutions Environment) el cual proporciona muchas soluciones y utilidades que se ejecutan como programas de i5/OS PASE y que incluyen comandos estándar.

    Si queremos informarnos bien de las posibilidades de QSHELL aquí tenemos un enlace en el IBM Knowledge Center (el enlace es para la versión 6.1), busca tu versión si no es ésta:


Saludos.
Carlos Bartolomé.

No hay comentarios:

Publicar un comentario

Muchas gracias por tus comentarios.