copiar ficheros masivamente

Todo lo relacionado con JCL, manejo de jobs, etc.
Responder
jcdm
Usuario
Usuario
Mensajes: 29
Registrado: 23 Feb 2015, 04:43
País: España
Ciudad: Madrid
Ocupación: Otra

copiar ficheros masivamente

Mensaje por jcdm » 13 Mar 2019, 12:09

Estimados compañeros.

Tengo (en este momento) 400 ficheros catalogados:

FI.**.jc.mensual.130419

Quisiera cambiarlo por

FI.**.jc.anual.130419

En donde ** es una variable.

¿Conoceis alguna utilidad para declarar variables y poderlos copiar? (con los mismos atributos)

Se me ha ocurrido recoger los 400 nombres de fichero y con un sort intentar construir las sentencias, pero posteriormente tendría que ejecutar 400 pasos de copiado...

No vale renombrar.

¿Alguna luz?
z/soldier

f_caballero
Usuario avanzado
Usuario avanzado
Mensajes: 61
Registrado: 25 Sep 2007, 16:36
País: España
Ciudad: Madrid
Ocupación: Analista de desarrollo

Re: copiar ficheros masivamente

Mensaje por f_caballero » 24 Mar 2019, 10:25

¿Puedes codificar una programa REXX o CLIST?
Si la respuesta es si, bastaría con que le des la lista variable y establezcas un bucle en el que:
- desde el DSN origen compongas el nombre de salida
- hagas los ALLOC de SYSUT1 y SYSUT2 (entrada y salida)
- llamas, dentro del REXX, al programa ICEGENER (u otra utilidad de la que dispongas) para que te vaya copiando los archivos.

Suerte.
Salud y fortuna.
Fernando Caballero

Geraldo Freites
Usuario
Usuario
Mensajes: 5
Registrado: 13 Ene 2009, 12:29
País: Venezuela
Ciudad: Puerto Ordaz
Ocupación: System Programmer

Re: copiar ficheros masivamente

Mensaje por Geraldo Freites » 24 Mar 2019, 11:03

Buen día con el utilitario ADRDSSU se puede, anexo ejemplo y la explicación de los parametros

//STEP1 EXEC PGM=ADRDSSU,REGION=2048K,COND=(0,NE)
//SYSPRINT DD SYSOUT=*
//INVOL1 DD VOL=SER=XXXXXX,UNIT=3390,DISP=SHR
//OUTVOL1 DD VOL=SER=YYYYYY,UNIT=SYSDA,DISP=SHR
//SYSIN DD *
COPY DATASET(INCLUDE( -
FI.**.JC.MENSUAL.130419 -
)) -
RENAMEU( -
(FI.**.JC.MENSUAL.130419 -
FI.**.JC.ANUAL.130419) -
) -
LOGINDDNAME(INVOL1) TOL(ENQF) CANCELERROR ALLDATA(*) ALLEXCP -
RECATALOG(ZZZZZZZZ ) -
OUTDDNAME(OUTVOL1) PROCESS(SYS1,UNDEF)
//
//* XXXXXX VOLUMEN DONDE ESTAN LOS ARCHIVOS DE ENTRADA
//* YYYYYY VOLUMEN DONDE VAN A COPIAR LOS ARCHIVOS DE ENTRADA
//* FI.**.JC.MENSUAL.130419 NOMBRE DE LOS ARCHIVOS A SELECCIONAR
//* PARA RENOMBRAR
//* FI.**.JC.ANUAL.130419 NOMBRE NUEVO DE LOS ARCHIVOS
//* ZZZZZZZZ NOMBRE CATALOGO DONDE VA A RECATALOGAR LOS ARCHIVOS
//* OJO OJO COLOCAR EL GUION EN LA COLUMNA 72

Responder