El script no utiliza conjuntos de datos SAS externos directamente. Los dos 'DATA _NULL_' se utilizan para ejecutar comandos del sistema y manipular rutas de archivos, sin crear conjuntos de datos persistentes. Los datos procesados son principalmente metadatos de archivos (nombres de archivos SAS) y rutas de acceso.
1 Bloque de código
DATA STEP
Explicación : Este bloque de paso de datos SAS, que no crea un conjunto de datos persistente ('_NULL_'), utiliza la función `filename pip pipe 'dir ...'` para ejecutar el comando del sistema 'dir' y listar los nombres de archivos '.sas' en el directorio 'core' definido por `kanbox`. Los nombres de archivo se leen uno por uno. Incluye una lógica para excluir 'refreshmac.sas' y para filtrar archivos si se proporciona el parámetro `&files`. Para cada archivo relevante, construye un comando `%include` y lo ejecuta dinámicamente a través de `call execute`, lo que permite incluir otras macros o códigos SAS.
¡Copiado!
data _null_;
filename pip pipe "dir "&kanbox\core\*.sas " /b";
infile pip;
length file $100 com $300;
input file ;
if index(file,'refreshmac.sas') then return;
if ("&files" ne '') and (not index(upcase("&files"),trim(upcase(file)))) then return;
com=("%include "&kanbox\core\"||file||"';");
put com=;
call execute(com);
run;
1
DATA _null_;
2
filename pip pipe "dir "&kanbox\core\*.sas " /b";
3
INFILE pip;
4
LENGTH file $100 com $300;
5
INPUT file ;
6
IF index(file,'refreshmac.sas') THEN return;
7
IF ("&files" ne '') and (not index(upcase("&files"),trim(upcase(file)))) THEN return;
8
com=("%include "&kanbox\core\"||file||"';");
9
put com=;
10
call execute(com);
11
RUN;
2 Bloque de código
DATA STEP
Explicación : Similar al bloque anterior, este segundo paso de datos también utiliza un 'DATA _NULL_' para listar e incluir dinámicamente archivos '.sas'. La única diferencia es que se dirige al directorio 'inter' en lugar de 'core' en la ruta `kanbox`, realizando la misma lógica de filtrado e inclusión dinámica para las macros o códigos ubicados en este directorio.
¡Copiado!
data _null_;
filename pip pipe "dir "&kanbox\inter\*.sas " /b";
infile pip;
length file $100 com $300;
input file ;
if index(file,'refreshmac.sas') then return;
if ("&files" ne '') and (not index(upcase("&files"),trim(upcase(file)))) then return;
com=("%include "&kanbox\inter\"||file||"';");
put com=;
call execute(com);
run;
IF ("&files" ne '') and (not index(upcase("&files"),trim(upcase(file)))) THEN return;
8
com=("%include "&kanbox\inter\"||file||"';");
9
put com=;
10
call execute(com);
11
RUN;
3 Bloque de código
Macro et commandes système
Explicación : Este bloque define variables locales para las rutas de red (`SAdrive`, `macbackup`) y asigna una libname `netmac` al directorio de respaldo de las macros. Luego utiliza dos macros (`%AHGdateandtime`, `%AHGpm`) para generar una fecha/hora en la variable `mydt` (no proporcionadas, se supone que existen en otro lugar). Crucialmente, ejecuta comandos del sistema a través de la instrucción `x`: `x mkdir` para crear un nuevo directorio con marca de tiempo para la copia de seguridad, y `x copy` para copiar los archivos existentes de la biblioteca a este nuevo directorio. Finalmente, se utiliza `PROC DATASETS` para copiar todos los catálogos (que contienen las macros compiladas) de la biblioteca temporal 'work' a la libname 'netmac', asegurando así la copia de seguridad y la actualización de la biblioteca de macros.
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.