注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Bioinformatics home

 
 
 

日志

 
 

SAS执行外部命令  

2013-10-08 12:08:08|  分类: 生物信息编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  在SAS程序中如果想要执行外部命令,比如linux下的shell命令或者windows下的command命令,共有3种方式。分别是X语句,system例程和sysexec宏。下面分别举一个例子:
  X statement
  X ‘C\Program Files\Microsoft Office\Office12\excelexe’ /*启动Excel程序*/
  System routine
  call system‘cd ~cp /tmp/test1 /’);
  Sysexec macro
  %sysexec %strpwdll); /*对于宏调用,如果字符串含有特殊字符,需要用%str逃逸*/
  针对这3种方法,我们要注意使用的区别。X语句是全局性的statement,它的执行不受SAS程序的逻辑控制,而system例程是典型的SAS函数调用,它遵循SAS程序的逻辑,至于sysexec宏,它只会在SAS程序执行前的宏编译的时候运行,然后带着运行后的结果继续SAS程序的执行。对于宏的机制此不赘言,但对于Xsystem例程的区别,下面一例即可明示。
  data _null_
  set tmp
  if flag = ‘Y’ then X ‘tastmgr’
  /*由于X是全局性的statement,不论flag的值是什么,taskmgr程序都会启动*/
  run
  data _null_
  set tmp
  if flag = ‘Y’ then call system‘tastmgr’);
  /*只有flag的值是’Y’时,taskmgr程序才会启动*/
  run
  评论这张
 
阅读(671)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017