SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 809|回复: 0
打印 上一主题 下一主题

求助,关于 删除所有用户定义的全局宏变量 的一段代码

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-2-14 14:24:47 | 只看该作者

求助,关于 删除所有用户定义的全局宏变量 的一段代码

可以在sashelp.vmacro中查看所有存在的宏变量的scope和value等信息。
全局(global)宏变量可以通过使用%symdel来删除。
删除所有用户定义的全局宏变量,详见这里:
<!-- m --><a class="postlink" href="http://support.sas.com/kb/26/154.html">http://support.sas.com/kb/26/154.html</a><!-- m -->
[code:1gmixt75]
%let x=1;
%let y=2;
%let z=3;

%put &amp;x &amp;y &amp;z;

%macro delvars;
  data vars;
    set sashelp&#46;vmacro;
  run;

  data _null_;
    set vars;
    temp=lag(name);
    if scope='GLOBAL' and substr(name,1,3) ne 'SYS' and temp ne name then
      call execute('%symdel '||trim(left(name))||';');
  run;

%mend;

%delvars

%put &amp;x &amp;y &amp;z;
[/code:1gmixt75]

问题,if语句中的“temp ne name”的作用是什么?

谢过~
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-12 20:38 , Processed in 0.066833 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表