楼主: yunnandlg
2475 4

[学习分享] SAS 取取当前路径 [推广有奖]

版主

但问耕耘,莫问收获

已卖:3032份资源

院士

5%

还不是VIP/贵宾

-

威望
0
论坛币
279497 个
通用积分
649.6475
学术水平
1667 点
热心指数
1686 点
信用等级
1650 点
经验
192322 点
帖子
1938
精华
0
在线时间
2782 小时
注册时间
2010-8-28
最后登录
2026-1-7

楼主
yunnandlg 在职认证  学生认证  发表于 2022-4-20 18:13:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
%macro nowpath;
        %global fullpath nowpath;   /*定义为global,为后续调用准备*/
        proc sql noprint;
                select xpath into : fullpath   /*选取全路径*/
                        from  dictionary.extfiles  /*dictionary.extfiles包含SAS路径信息*/
                        where substr(fileref,4) eq
                                (select max(substr(fileref,4))   /*max()保证选取最新(当前)路劲*/
                                from dictionary.extfiles
                                where substr(fileref,1,1) eq "#" and index(xpath,".sas") gt 0  );
        quit;

        /*选取当前路径*/
        %let nowpath=%substr(&fullpath,1,%eval(%length(&fullpath)-%length(%scan(&fullpath,-1,\))));
        %put The Full Path is: &fullpath;
        %put The Now Path is: &nowpath;
%mend nowpath;

%nowpath;

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Dictionary proc sql SUBSTR length Global

回帖推荐

whymath 发表于2楼  查看完整内容

full path 存储在环境变量sas_execfilepath中,直接获取环境变量的值会更方便些:
Cause morning rolls around and it's another day of sun.
清晨不久就会来到,又是阳光明媚的一天。

沙发
whymath 发表于 2022-4-20 21:48:18
full path 存储在环境变量sas_execfilepath中,直接获取环境变量的值会更方便些:
  1. %put %sysget(sas_execfilepath);
复制代码
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
yunnandlg + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 100  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

藤椅
yunnandlg 在职认证  学生认证  发表于 2022-4-20 22:30:25
%let fullpath= %sysget(sas_execfilepath);
%let nowpath=%substr(&fullpath,1,%eval(%length(&fullpath)-%length(%scan(&fullpath,-1,\))));
%put The Full Path is: &fullpath;
%put The Now Path is: &nowpath;

板凳
yunnandlg 在职认证  学生认证  发表于 2022-4-21 22:03:49
/* 改变工作路径 change the working directory to the current file folder. */
%macro cd_currfile_path;
        %let currfile_path = %qsubstr(%sysget(SAS_EXECFILEPATH), 1, %length(%sysget(SAS_EXECFILEPATH))-%length(%sysget(SAS_EXECFILEname)) );
        x "cd &currfile_path.";
%mend cd_currfile_path;
%cd_currfile_path;

报纸
yunnandlg 在职认证  学生认证  发表于 2022-4-21 22:09:47
%sysexec md "../data" & exit;/*新建文件夹*/

libname dlglib '../data';

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-9 16:04