Publicado el :

Creación de Carpeta y Copia 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.
El script incluye una macro llamada `create_newfolder` que toma una ruta de carpeta como parámetro. Esta macro verifica la existencia de la carpeta; si no existe, determina el sistema operativo (Windows o Linux) a través de `&sysscp` y ejecuta el comando de sistema apropiado (`md` o `mkdir -p`) para crear la carpeta recursivamente. Después de la definición de la macro, el script crea una carpeta `D:\SAS©\mactest`, le asigna una librería SAS© llamada `mylib`, y luego copia el conjunto de datos `CLASS` de la librería `SASHELP` a `mylib.class`.
Análisis de datos

Type : SASHELP


El script utiliza el conjunto de datos `CLASS` de la librería interna `SASHELP`.

1 Bloque de código
MACRO DEFINITION
Explicación :
Este bloque define la macro `create_newfolder`. Toma un argumento `newfld` (la ruta de la carpeta a crear). Utiliza `%sysfunc(fileexist())` para verificar si la carpeta ya existe. Si no, usa `%sysexec` con `md` (para Windows) o `mkdir -p` (para Linux) para crear la carpeta. El uso de `%sysexec` es una función administrativa que permite la ejecución de comandos del sistema y requiere privilegios adecuados.
¡Copiado!
1%macro create_newfolder(newfld);
2
3%*---------------------------------------------------------;
4%*check for the existence of the folder;
5%*---------------------------------------------------------;
6
7%IF %sysfunc(fileexist(&newfld)) %THEN %put NOTE:The directory "&newfld" already EXISTS.;
8
9%*---------------------------------------------------------;
10%*create the folder(s) recursively IF absent;
11%*---------------------------------------------------------;
12%ELSE %DO;
13 %*---------------------------------------------------------;
14 %*check the operating system and use the OS specific command;
15 %*---------------------------------------------------------;
16 %IF "%bquote(%substr(&sysscp,1,3))"="WIN" %THEN %sysexec md "&newfld";
17 %ELSE %IF "%bquote(%substr(&sysscp,1,3))"="LIN" %THEN %sysexec mkdir -p "&newfld";
18
19 %put NOTE:The directory "&newfld" has been CREATED.;
20%END;
21
22
23%mend csg_create_newfolder_001;
2 Bloque de código
MACRO CALL / LIBNAME
Explicación :
Este bloque llama a la macro `create_newfolder` para crear la carpeta `D:\SAS\mactest`. Luego, asigna el nombre de librería `mylib` a esta nueva carpeta, haciéndola accesible para las operaciones SAS.
¡Copiado!
1%create_newfolder(D:\SAS\mactest);
2 
3LIBNAME mylib "D:\SAS\mactest";
4 
3 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP copia el conjunto de datos `CLASS` de la librería SASHELP (implícitamente, ya que `set class;` sin libname calificado se refiere a `SASHELP.CLASS` si `WORK.CLASS` no existe) a la nueva librería `mylib`, creando así `mylib.class` en la carpeta `D:\SAS\mactest`.
¡Copiado!
1DATA mylib.class;
2 SET class;
3RUN;
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.