La macro ne lit aucun jeu de données. Sa source d'information est externe à SAS : les variables d'environnement du système d'exploitation sur lequel SAS est exécuté.
1 Bloc de code
Macro
Explication : Ce bloc définit la macro `%qgetenv` qui prend en entrée le nom d'une variable d'environnement. Elle déclare une variable macro locale `tempres`. Un test conditionnel sur la variable `&sysscp` exécute une commande différente pour Windows (`echo %variable%`) et pour Unix/Linux (`echo $variable`). La commande est passée à la macro `%qreadpipe` pour exécution et capture de la sortie. Pour Windows, un contrôle supplémentaire vérifie si la variable a été résolue, sinon une chaîne vide est retournée. Finalement, la macro retourne le contenu capturé.
Copié !
%macro qgetenv(envvar);
%local tempres;
%if "&sysscp" EQ "WIN" %then %do;
%let tempres=%qreadpipe(echo %nrbquote(%str(%%)%superq(envvar)%str(%%)));
%*- if it did not resolve then set to null -;
%if "%qsubstr(%superq(tempres),1,1)" EQ "%" %then %let tempres=;
%end;
%else %let tempres=%qreadpipe(echo $&envvar);
&tempres
%mend qgetenv;
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.
Informations de Copyright : 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 et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.