全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2990 1
2016-09-24
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
  

二维码

扫码加我 拉你入群

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

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

全部回复
2016-9-24 15:14:19
写的挺好的,学习了!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群