Publicado el :
Utilidad CREATION_INTERNE

Ejecutar un comando del sistema y capturar la salida en un conjunto de datos

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.
La macro `%cmd2ds` toma dos parámetros: `cmd` (el comando del sistema a ejecutar) y `dsout` (el nombre del conjunto de datos de salida, por defecto `_cmd2ds`). Utiliza la interfaz `filename ... pipe` para ejecutar el comando y redirigir su salida estándar. Un DATA STEP luego lee cada línea de esta salida y la almacena en una variable `str` de 256 caracteres en el conjunto de datos especificado. La referencia `filename` se libera después, lo cual es crucial para los recursos del sistema.
Análisis de datos

Type : CREATION_INTERNE


El conjunto de datos de salida se crea dinámicamente leyendo la salida estándar de un comando del sistema ejecutado a través de la interfaz 'pipe'. Cada línea de salida del comando se convierte en una observación en el conjunto de datos SAS.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque define la macro `%cmd2ds`. Gestiona el nombre del conjunto de datos de salida asignándole un valor predeterminado `_cmd2ds` si `dsout` no se especifica. La declaración `filename _cmd2ds pipe "&cmd";` es crucial porque ejecuta el comando del sistema proporcionado por el parámetro `&cmd` y asocia su salida a la fileref `_cmd2ds`. El `DATA STEP` luego lee esta salida línea por línea usando `infile _cmd2ds;` e `input;`, asignando cada línea a la variable `_infile_` y luego a la variable `str`, creando así el conjunto de datos SAS. Finalmente, `filename _cmd2ds CLEAR;` libera la fileref, cerrando la tubería y liberando los recursos del sistema.
¡Copiado!
1%put MACRO CALLED: cmd2ds v1.0;
2 
3%macro cmd2ds(cmd,dsout);
4 %IF not %LENGTH(&dsout) %THEN %let dsout=_cmd2ds;
5 filename _cmd2ds pipe "&cmd";
6 DATA &dsout;
7 LENGTH str $ 256;
8 INFILE _cmd2ds;
9 INPUT;
10 str=_infile_;
11 RUN;
12 filename _cmd2ds CLEAR;
13%mend cmd2ds;
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 : This is public domain software. No guarantee as to suitability or accuracy is given or implied. User uses this code entirely at their own risk.