Die vom Skript verarbeiteten Daten stammen aus der Standardausgabe eines Betriebssystembefehls (z.B. 'dir' unter Windows), der über `filename pipe` ausgeführt wird. Diese Daten werden vom DATA-Schritt spontan gelesen und analysiert.
1 Codeblock
MACRO / FILENAME
Erklärung : Dieser Block definiert den Beginn des Makros `%getstats` und deklariert ein Fileref `cmd` vom Typ 'pipe'. Dieses Fileref ist so konfiguriert, dass es einen Betriebssystembefehl (als Argument `dir_cmd` übergeben) ausführt und dessen Ausgabe an SAS umleitet, wodurch SAS diese Ausgabe wie eine Datei lesen kann.
Erklärung : Dieser `DATA _NULL_`-Block liest die Ausgabe des OS-Befehls über das Fileref `cmd`. Er ist darauf ausgelegt, die sechste Zeile (`#6`) zu lesen und Datum (`date`), Uhrzeit (`time`) und Größe (`size`) unter Verwendung spezifischer SAS-Formate zu extrahieren. **Achtung:** Die Zeichenketten ` @code_sas_json/...` in der `input`-Anweisung des Originalcodes stellen einen SAS-Syntaxfehler dar und würden das Skript funktionsunfähig machen. Die Absicht war wahrscheinlich, numerische Spaltenpositionen anzugeben (z.B. ` @code_sas_json_prod_multi/10 One to One Merge_de.json date ...`). Nach dem Lesen wird `call symput` verwendet, um diese formatierten Werte in den globalen Makrovariablen `_date`, `_time` und `_size` zu speichern.
Kopiert!
data _null_ ;
infile cmd truncover ;
* This works on windows XP Professional, but on other version you might need to adjust the settings to
read the information you want from different positions ;
input #6 @code_sas_json/L3.13-Storing_a_List_of_Values_in_a_Macro-Variable.json date ddmmyy10.
@code_sas_json/L3.13-Storing_a_List_of_Values_in_a_Macro-Variable.json time time5.
@code_sas_json/q203.json size comma17. ;
* Now write the data to macro variables to be used ;
call symput('_date',put(date,date9.)) ;
call symput('_time',put(time,time5.)) ;
* note we use left justification within formatted field , otherwise number is right justified within field ;
call symput('_size',put(size,comma9. -l)) ;
run ;
1
DATA _null_ ;
2
INFILE cmd truncover ;
3
* This works on windows XP Professional, but on other version you might need to adjust the settings to
4
read the information you want from different positions ;
5
INPUT #6 @code_sas_json/L3.13-Storing_a_List_of_Values_in_a_Macro-Variable.json date ddmmyy10.
6
@code_sas_json/L3.13-Storing_a_List_of_Values_in_a_Macro-Variable.json time time5.
7
@code_sas_json/q203.json size comma17. ;
8
* Now write the data to macro variables to be used ;
9
call symput('_date',put(date,date9.)) ;
10
call symput('_time',put(time,time5.)) ;
11
* note we use left justification within formatted field , otherwise number is right justified within field ;
12
call symput('_size',put(size,comma9. -l)) ;
13
RUN ;
3 Codeblock
MACRO
Erklärung : Dieser Abschnitt deklariert die Makrovariablen `_date`, `_time` und `_size` als global, wodurch sie nach Ausführung des Makros zugänglich sind. `%mend getstats` markiert das Ende der Makrodefinition.
Kopiert!
%global _date _time _size ;
%mend getstats ;
1
%global _date _time _size ;
2
%mend getstats ;
4 Codeblock
MACRO CALL / %PUT
Erklärung : Dieser Block ruft das Makro `%getstats` auf und übergibt ihm den Systembefehl `dir c:\windows\notepad.exe`. Dies führt den Befehl aus und aktualisiert die Makrovariablen. Anschließend wird die Anweisung `%put` verwendet, um die endgültigen Werte von `_date`, `_time` und `_size` im SAS-Log anzuzeigen.
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.