Das Skript verwendet keine externen SAS-Datensätze direkt. Die beiden 'DATA _NULL_' werden verwendet, um Systembefehle auszuführen und Dateipfade zu manipulieren, ohne persistente Datensätze zu erstellen. Die verarbeiteten Daten sind hauptsächlich Dateimetadaten (Namen von SAS-Dateien) und Zugriffspfade.
1 Codeblock
DATA STEP
Erklärung : Dieser SAS-Data-Schritt-Block, der keinen persistenten Datensatz erstellt ('_NULL_'), verwendet die Funktion `filename pip pipe 'dir ...'`, um den Systembefehl 'dir' auszuführen und die Namen der '.sas'-Dateien im durch `kanbox` definierten 'core'-Verzeichnis aufzulisten. Die Dateinamen werden einzeln gelesen. Er enthält eine Logik zum Ausschließen von 'refreshmac.sas' und zum Filtern von Dateien, wenn der Parameter `&files` angegeben ist. Für jede relevante Datei wird ein `%include`-Befehl erstellt und dynamisch über `call execute` ausgeführt, um andere SAS-Makros oder -Codes einzubinden.
Kopiert!
data _null_;
filename pip pipe "dir "&kanbox\core\*.sas " /b";
infile pip;
length file $100 com $300;
input file ;
if index(file,'refreshmac.sas') then return;
if ("&files" ne '') and (not index(upcase("&files"),trim(upcase(file)))) then return;
com=("%include "&kanbox\core\"||file||"';");
put com=;
call execute(com);
run;
1
DATA _null_;
2
filename pip pipe "dir "&kanbox\core\*.sas " /b";
3
INFILE pip;
4
LENGTH file $100 com $300;
5
INPUT file ;
6
IF index(file,'refreshmac.sas') THEN return;
7
IF ("&files" ne '') and (not index(upcase("&files"),trim(upcase(file)))) THEN return;
8
com=("%include "&kanbox\core\"||file||"';");
9
put com=;
10
call execute(com);
11
RUN;
2 Codeblock
DATA STEP
Erklärung : Ähnlich wie der vorherige Block verwendet dieser zweite Data-Schritt ebenfalls einen 'DATA _NULL_', um '.sas'-Dateien dynamisch aufzulisten und einzubinden. Der einzige Unterschied besteht darin, dass er das 'inter'-Verzeichnis anstelle von 'core' im Pfad `kanbox` anspricht und dieselbe Logik für das Filtern und dynamische Einbinden von Makros oder Codes in diesem Verzeichnis anwendet.
Kopiert!
data _null_;
filename pip pipe "dir "&kanbox\inter\*.sas " /b";
infile pip;
length file $100 com $300;
input file ;
if index(file,'refreshmac.sas') then return;
if ("&files" ne '') and (not index(upcase("&files"),trim(upcase(file)))) then return;
com=("%include "&kanbox\inter\"||file||"';");
put com=;
call execute(com);
run;
IF ("&files" ne '') and (not index(upcase("&files"),trim(upcase(file)))) THEN return;
8
com=("%include "&kanbox\inter\"||file||"';");
9
put com=;
10
call execute(com);
11
RUN;
3 Codeblock
Makro und Systembefehle
Erklärung : Dieser Block definiert lokale Variablen für Netzwerkpfade (`SAdrive`, `macbackup`) und weist eine Libname `netmac` dem Sicherungsverzeichnis der Makros zu. Anschließend werden zwei Makros (`%AHGdateandtime`, `%AHGpm`) verwendet, um ein Datum/Uhrzeit in der Variablen `mydt` zu generieren (nicht bereitgestellt, werden an anderer Stelle angenommen). Entscheidend ist, dass Systembefehle über die `x`-Anweisung ausgeführt werden: `x mkdir`, um ein neues zeitgestempeltes Verzeichnis für die Sicherung zu erstellen, und `x copy`, um die vorhandenen Dateien der Bibliothek in dieses neue Verzeichnis zu kopieren. Schließlich wird `PROC DATASETS` verwendet, um alle Kataloge (die die kompilierten Makros enthalten) aus der temporären Bibliothek 'work' in die Libname 'netmac' zu kopieren, wodurch die Sicherung und Aktualisierung der Makrobibliothek gewährleistet ist.
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.