Publié le :
Macro EXTERNE

Exécution dynamique récursive de fichiers SAS

Ce code est également disponible en : Deutsch English Español
Attention : Ce code nécessite des droits administrateur.
Le code définit une macro '%findsas' qui utilise une commande système (PIPE) pour lister les fichiers portant l'extension .sas© dans un répertoire donné. Il utilise ensuite 'CALL EXECUTE' dans une étape DATA _NULL_ pour générer dynamiquement des instructions '%include' pour chaque fichier trouvé. Notez que la commande 'dir /b /s' est spécifique à Windows et devra être adaptée pour un environnement Linux (SAS© Viya standard).
Analyse des données

Type : EXTERNE


Liste de fichiers obtenue via une commande système (OS).

1 Bloc de code
DATA STEP
Explication :
Définition de la macro. Utilise 'filename pipe' pour exécuter la commande DOS 'dir' et récupérer la liste des fichiers. L'étape DATA parcourt cette liste et exécute chaque fichier via '%include'.
Copié !
1%macro findsas(dir);
2
3 filename filelist pipe "dir /b /s &dir\*.sas";
4 
5 DATA _null_;
6 INFILE filelist truncover;
7 INPUT filename $100.;
8 call execute(cats('%include ', quote(trim(filename)), ';'));
9 RUN;
10 
11%mend findsas;
2 Bloc de code
MACRO CALL
Explication :
Appel de la macro avec un chemin construit via une variable macro '&path'. Une ligne commentée montre un exemple de chemin absolu Windows.
Copié !
1%findsas(&path\mysaspgms)
2%*findsas(S:\workshop\mysaspgms)
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.