Publicado el :
Macro EXTERNE

Macro dirfp2sas: Listado de archivos de Windows a tabla SAS

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
Esta macro utiliza un comando del sistema a través de un 'filename pipe' para ejecutar un comando shell (específico de Windows 'dir'/'for') con el fin de listar los archivos que coinciden con el patrón proporcionado. El resultado se almacena en una tabla SAS© que contiene la ruta completa y el nombre del archivo en minúsculas. Nota: Este código contiene comandos específicos de Windows y requerirá adaptación para funcionar en un entorno SAS© Viya estándar (Linux).
Análisis de datos

Type : EXTERNE


Los datos provienen de un comando del sistema (Pipe) que lista los archivos del directorio especificado.

1 Bloque de código
MACRO
Explicación :
Definición de la macro, gestión de las opciones de registro y configuración del 'filename pipe' para ejecutar el comando del sistema Windows de listado de archivos.
¡Copiado!
1%macro dirfp2sas(filepattern,dsout);
2 
3 %local savopts;
4 %let savopts=%sysfunc(getoption(NOTES));
5 
6 %IF not %LENGTH(&dsout) %THEN %let dsout=_dirfp2sas;
7 
8 options nonotes;
9 
10 filename _dirfp pipe
11 "echo off & for %nrstr(%f) in (""&filepattern"") do echo %nrstr(%f)";
2 Bloque de código
DATA STEP Data
Explicación :
Lectura del flujo de salida del comando del sistema y creación de la tabla de salida con la ruta completa y el nombre de archivo extraído.
¡Copiado!
1 DATA &dsout;
2 LENGTH filename $ 300 lcfname $ 200;
3 INFILE _dirfp;
4 INPUT;
5 filename=trim(_infile_);
6 lcfname=lowcase(scan(filename,-1,"\"));
7 RUN;
3 Bloque de código
CLEANUP
Explicación :
Limpieza del 'filename' y restauración de las opciones SAS iniciales.
¡Copiado!
1 filename _dirfp CLEAR;
2 
3 options &savopts;
4 
5%mend dirfp2sas;
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.
Información de copyright : Public domain software. Roland Rashleigh-Berry.