Attention : Dieser Code erfordert Administratorrechte.
Das Makro `%cmd2ds` akzeptiert zwei Parameter: `cmd` (den auszuführenden Systembefehl) und `dsout` (den Namen des Ausgabedatensatzes, standardmäßig `_cmd2ds`). Es verwendet die Schnittstelle `filename ... pipe`, um den Befehl auszuführen und seine Standardausgabe umzuleiten. Ein DATA STEP liest dann jede Zeile dieser Ausgabe und speichert sie in einer 256 Zeichen langen Variablen `str` im angegebenen Datensatz. Der `filename`-Verweis wird anschließend freigegeben, was für die Systemressourcen entscheidend ist.
Datenanalyse
Type : CREATION_INTERNE
Der Ausgabedatensatz wird dynamisch erstellt, indem die Standardausgabe eines über die 'Pipe'-Schnittstelle ausgeführten Systembefehls gelesen wird. Jede Ausgabelinie des Befehls wird zu einer Beobachtung im SAS-Datensatz.
1 Codeblock
DATA STEP Data
Erklärung : Dieser Block definiert das Makro `%cmd2ds`. Er verwaltet den Namen des Ausgabedatensatzes, indem er ihm den Standardwert `_cmd2ds` zuweist, falls `dsout` nicht angegeben ist. Die Deklaration `filename _cmd2ds pipe "&cmd";` ist entscheidend, da sie den über den Parameter `&cmd` bereitgestellten Systembefehl ausführt und dessen Ausgabe der Fileref `_cmd2ds` zuordnet. Der `DATA STEP` liest dann diese Ausgabe Zeile für Zeile mithilfe von `infile _cmd2ds;` und `input;`, weist jede Zeile der Variablen `_infile_` und dann der Variablen `str` zu und erstellt so den SAS-Datensatz. Schließlich gibt `filename _cmd2ds CLEAR;` die Fileref frei, schließt die Pipe und gibt die Systemressourcen frei.
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.
Urheberrechtsinformationen : 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.
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.