楼主: 小鳄鱼a
9480 17

如何确定当前sas文件位置 [推广有奖]

  • 6关注
  • 10粉丝

已卖:280份资源

学科带头人

3%

还不是VIP/贵宾

-

威望
0
论坛币
125 个
通用积分
0.0040
学术水平
40 点
热心指数
45 点
信用等级
43 点
经验
32801 点
帖子
1185
精华
0
在线时间
1539 小时
注册时间
2009-7-16
最后登录
2018-10-5

楼主
小鳄鱼a 发表于 2015-12-17 16:57:13 |AI写论文
200论坛币
对于已经存在的sas程序文件,怎样用程序确定其位置呢,将位置赋给一个宏变量,可以调取

最佳答案

freerunning_sky 查看完整内容

我运行没有问题的,你是调用宏跑的还是直接在SAS上运行上面的代码,不能打开一个新的窗口直接运行,SAS代码必须要先保存
关键词:sas程序 存在的 如何

沙发
freerunning_sky 在职认证  发表于 2015-12-17 16:57:14
小鳄鱼a 发表于 2015-12-17 19:41
NOTE: 没有选择任何行。
6            quit;
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
我运行没有问题的,你是调用宏跑的还是直接在SAS上运行上面的代码,不能打开一个新的窗口直接运行,SAS代码必须要先保存

藤椅
freerunning_sky 在职认证  发表于 2015-12-17 17:27:35
  1. proc sql noprint;
  2.                 select xpath into :fullpath from dictionary.extfiles
  3.                 where substr(fileref,4) eq
  4.                 (select max(substr(fileref,4)) from dictionary.extfiles
  5.                 where substr(fileref,1,1) eq "#" and index(xpath,".sas") gt 0 );
  6.         quit;
  7.         %let nowpath=%substr(&fullpath,1,%eval(%length(&fullpath)-%length(%scan(&fullpath,-1,\))));
  8.         %put &nowpath;
复制代码
要求当前SAS文件是打开的,如果打开了多个SAS文件,那么得到的最后一次打开(保存)的文件这是以前别人编的代码

板凳
小鳄鱼a 发表于 2015-12-17 19:41:25
freerunning_sky 发表于 2015-12-17 17:27
要求当前SAS文件是打开的,如果打开了多个SAS文件,那么得到的最后一次打开(保存)的文件这是以前别人编的 ...
NOTE: 没有选择任何行。
6            quit;
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
      实际时间          1.42 秒
      CPU 时间          0.06 秒


WARNING: 没有解析符号引用 FULLPATH。
WARNING: 没有解析符号引用 FULLPATH。
WARNING: 没有解析符号引用 FULLPATH。
WARNING: 没有解析符号引用 FULLPATH。
WARNING: 参数 3(宏函数 %SUBSTR 中)超出范围。
7            %let nowpath=%substr(&fullpath,1,%eval(%length(&fullpath)-%length(%scan(&fullpath,-1,\))));
8            %put &nowpath;

报纸
Tigflanker 发表于 2015-12-17 21:48:50
前段时间还看到一篇文章有提到来着。。。

地板
Tigflanker 发表于 2015-12-17 21:49:57
FYI:
http://hssnow.name/2011/07/use-nowpath-macro-to-acquire-the-current-sas-path/
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
小鳄鱼a + 5 + 5 + 5 + 5 精彩帖子

总评分: 论坛币 + 5  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

7
小鳄鱼a 发表于 2015-12-17 22:06:01
Tigflanker 发表于 2015-12-17 21:49
FYI:
http://hssnow.name/2011/07/use-nowpath-macro-to-acquire-the-current-sas-path/
这个也有问题呢



NOTE: 没有选择任何行。
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.00 秒


WARNING: 没有解析符号引用 AMP。
NOTE: 为 %SUBSTR 函数提供了一个或多个缺失的右括号。
ERROR: 宏函数 %SUBSTR 的参数过少。
NOTE: 由调用宏“NOWPATH”生成行。
4    fullpath,1,%eval(%length(&fullpath)-%length(%scan(&fullpath,-1,\))));
     --------
     180
WARNING: 没有解析符号引用 AMP。
WARNING: 没有解析符号引用 AMP。
WARNING: 没有解析符号引用 AMP。

ERROR 180-322: 语句无效或未按正确顺序使用。

WARNING: 没有解析符号引用 AMP。
The Full Path is: &amp
NOTE: 由调用宏“NOWPATH”生成行。
6    fullpath;
     --------
     180

ERROR 180-322: 语句无效或未按正确顺序使用。

WARNING: 没有解析符号引用 AMP。
The Now Path is: &amp
NOTE: 由调用宏“NOWPATH”生成行。
8    nowpath;
     -------
     180

ERROR 180-322: 语句无效或未按正确顺序使用。

8
teqel 发表于 2015-12-17 22:53:05
用X命令调用DOS满机器的搜寻?

9
小鳄鱼a 发表于 2015-12-17 23:04:20
teqel 发表于 2015-12-17 22:53
用X命令调用DOS满机器的搜寻?
不是吧   那样太慢了吧

10
teqel 发表于 2015-12-17 23:34:42
没太看懂问题。是已经有了文件名,但是不知道在哪个目录下?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 13:22