Veröffentlicht am :
Makro EXTERNE

Makro dirfp2sas: Windows-Dateiliste in SAS-Tabelle

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Dieses Makro verwendet einen Systembefehl über eine 'Filename Pipe', um einen Shell-Befehl (Windows-spezifisches 'dir'/'for') auszuführen, um Dateien aufzulisten, die dem angegebenen Muster entsprechen. Das Ergebnis wird in einer SAS©-Tabelle gespeichert, die den vollständigen Pfad und den Dateinamen in Kleinbuchstaben enthält. Hinweis: Dieser Code enthält Windows-spezifische Befehle und muss angepasst werden, um in einer Standard-SAS©-Viya-Umgebung (Linux) zu funktionieren.
Datenanalyse

Type : EXTERNE


Die Daten stammen von einem Systembefehl (Pipe), der die Dateien des angegebenen Verzeichnisses auflistet.

1 Codeblock
MACRO
Erklärung :
Definition des Makros, Verwaltung der Log-Optionen und Konfiguration der 'Filename Pipe' zur Ausführung des Windows-Systembefehls zur Dateiliste.
Kopiert!
1%macro dirfp2sas(filepattern,dsout);
2 
3 %local savopts;
4 %let savopts=%sysfunc(getoption(NOTES));
5 
6 %IF not %LENGTH(&dsout) %THEN %let dsout=_dirfp2sas;
7 
8 options nonotes;
9 
10 filename _dirfp pipe
11 "echo off & for %nrstr(%f) in (""&filepattern"") do echo %nrstr(%f)";
2 Codeblock
DATA STEP Data
Erklärung :
Lesen des Ausgabestroms des Systembefehls und Erstellen der Ausgabetabelle mit dem vollständigen Pfad und dem extrahierten Dateinamen.
Kopiert!
1 DATA &dsout;
2 LENGTH filename $ 300 lcfname $ 200;
3 INFILE _dirfp;
4 INPUT;
5 filename=trim(_infile_);
6 lcfname=lowcase(scan(filename,-1,"\"));
7 RUN;
3 Codeblock
CLEANUP
Erklärung :
Bereinigung des Filenamen und Wiederherstellung der ursprünglichen SAS-Optionen.
Kopiert!
1 filename _dirfp CLEAR;
2 
3 options &savopts;
4 
5%mend dirfp2sas;
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 : Public domain software. Roland Rashleigh-Berry.