Publicado el :
Macro EXTERNE

Ejecución dinámica recursiva de archivos SAS

Este código también está disponible en: Deutsch English Français
Attention : Este código requiere privilegios de administrador.
El código define una macro '%findsas' que utiliza un comando del sistema (PIPE) para listar los archivos con extensión .sas© en un directorio dado. Luego usa 'CALL EXECUTE' en un paso DATA _NULL_ para generar dinámicamente instrucciones '%include' para cada archivo encontrado. Tenga en cuenta que el comando 'dir /b /s' es específico de Windows y deberá adaptarse para un entorno Linux (SAS© Viya estándar).
Análisis de datos

Type : EXTERNE


Lista de archivos obtenida a través de un comando del sistema operativo (SO).

1 Bloque de código
DATA STEP
Explicación :
Definición de la macro. Utiliza 'filename pipe' para ejecutar el comando DOS 'dir' y recuperar la lista de archivos. El paso DATA recorre esta lista y ejecuta cada archivo a través de '%include'.
¡Copiado!
1%macro findsas(dir);
2
3 filename filelist pipe "dir /b /s &dir\*.sas";
4 
5 DATA _null_;
6 INFILE filelist truncover;
7 INPUT filename $100.;
8 call execute(cats('%include ', quote(trim(filename)), ';'));
9 RUN;
10 
11%mend findsas;
2 Bloque de código
MACRO CALL
Explicación :
Llamada a la macro con una ruta construida a través de una variable macro '&path'. Una línea comentada muestra un ejemplo de ruta absoluta de Windows.
¡Copiado!
1%findsas(&path\mysaspgms)
2%*findsas(S:\workshop\mysaspgms)
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.