Veröffentlicht am :

Ordnererstellung und Datenkopie

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Das Skript enthält ein Makro namens `create_newfolder`, das einen Ordnerpfad als Parameter entgegennimmt. Dieses Makro prüft, ob der Ordner existiert; falls nicht, ermittelt es das Betriebssystem (Windows oder Linux) über `&sysscp` und führt den entsprechenden Systembefehl (`md` oder `mkdir -p`) aus, um den Ordner rekursiv zu erstellen. Nach der Makrodefinition erstellt das Skript einen Ordner `D:\SAS©\mactest`, weist diesem eine SAS©-Bibliothek namens `mylib` zu und kopiert dann den `CLASS`-Datensatz aus der `SASHELP`-Bibliothek nach `mylib.class`.
Datenanalyse

Type : SASHELP


Das Skript verwendet den `CLASS`-Datensatz aus der internen `SASHELP`-Bibliothek.

1 Codeblock
MACRO DEFINITION
Erklärung :
Dieser Block definiert das Makro `create_newfolder`. Es nimmt ein Argument `newfld` (den zu erstellenden Ordnerpfad) entgegen. Es verwendet `%sysfunc(fileexist())`, um zu prüfen, ob der Ordner bereits existiert. Falls nicht, verwendet es `%sysexec` mit `md` (für Windows) oder `mkdir -p` (für Linux), um den Ordner zu erstellen. Die Verwendung von `%sysexec` ist eine administrative Funktion, die die Ausführung von Systembefehlen ermöglicht und entsprechende Berechtigungen erfordert.
Kopiert!
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 Codeblock
MACRO CALL / LIBNAME
Erklärung :
Dieser Block ruft das Makro `create_newfolder` auf, um den Ordner `D:\SAS\mactest` zu erstellen. Anschließend weist er diesem neuen Ordner den Bibliotheksnamen `mylib` zu, wodurch er für SAS-Operationen zugänglich wird.
Kopiert!
1%create_newfolder(D:\SAS\mactest);
2 
3LIBNAME mylib "D:\SAS\mactest";
4 
3 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-STEP-Block kopiert den `CLASS`-Datensatz aus der SASHELP-Bibliothek (implizit, da `set class;` ohne qualifizierten Libname auf `SASHELP.CLASS` verweist, wenn `WORK.CLASS` nicht existiert) in die neue Bibliothek `mylib`, wodurch `mylib.class` im Ordner `D:\SAS\mactest` erstellt wird.
Kopiert!
1DATA mylib.class;
2 SET class;
3RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.