楼主: playmore
1730 3

[SAS] SAS基础宏之1:ChkFile   [推广有奖]

已卖:1645份资源

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16356 个
通用积分
8.6697
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1332 小时
注册时间
2007-1-11
最后登录
2025-12-1

初级学术勋章 初级热心勋章 中级热心勋章

楼主
playmore 发表于 2015-3-7 19:53:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
响应Webgu号召,发布我做的一系列基础文件操作、数据集操作的宏

基本上能完成版上经常有人问到的大部分基础任务

我不像各位版大那样勤劳,可能隔三差五来一发吧

这个宏是
      用来检查指定目标文件夹或文件是否存在的,若存在则删除,不存在则创建,用于解决在dos中和SAS中无法创建文件夹的问题

例如可以在运行proc export前ChkFile下


  1. %macro ChkFile(OutFilePath);
  2. /**********************************************************************/
  3. /* 此宏的作用是检查指定路径的文件夹或文件是否存在。若指定路径包含文件 */
  4. /* 名,则运行此宏后路径中包含的文件夹存在但文件不存在,方便以后操作; */
  5. /* 若指定路径不包含文件名,则运行此宏后路径中包含的文件夹存在。其中, */
  6. /* OutFilePath是指定的文件夹或文件路径。注意如果路径中包含文件名,则  */
  7. /* 一定要写全文件名和其扩展名。                                       */
  8. /*                                                                    */
  9. /*                                      Created on 2011.9.29          */
  10. /*                                      Modified on 2011.9.29         */
  11. /**********************************************************************/

  12. /* 情形1:当输入参数OutFilePath包含文件名时,注意文件名必须带后缀 */
  13. %if %SYSFUNC(FIND(&OutFilePath,%Str(.))) NE 0 %then %do;
  14.         /* 得到OutFilePath中包含的文件名File和文件夹路径Dir */
  15.         %let File=%SYSFUNC(SCAN(&OutFilePath,-1,\));
  16.         %let Dir=%SYSFUNC(SUBSTR(&OutFilePath,1,%EVAL(%SYSFUNC(LENGTH(&OutFilePath))-%SYSFUNC(LENGTH(&File)))));

  17.         options noxwait;

  18.         %local rc1 fileref1;
  19.         %local rc2 fileref2;
  20.         %let rc1=%SYSFUNC(FILENAME(fileref1,&Dir));
  21.         %let rc2=%SYSFUNC(FILENAME(fileref2,&OutFilePath));

  22.         %if %SYSFUNC(FEXIST(&fileref1)) %then %do;
  23.                 %put NOTE: The directory "&Dir" exists.;
  24.                 %if %SYSFUNC(FEXIST(&fileref2)) %then %do;                /* 文件夹存在且文件也存在的情形 */
  25.                         %SYSEXEC del &OutFilePath;
  26.                         %put NOTE: The file "&File" also exists, and has been deleted.;
  27.                         %end;
  28.                 %else %put NOTE: But the file "&File" does not exist.;                /* 文件夹存在且文件不存在的情形 */
  29.                 %end;
  30.         %else %do;                /* 文件夹不存在的情形 */
  31.                 %SYSEXEC md &Dir;
  32.                 %put %SYSFUNC(SYSMSG()) The directory has been created.;
  33.                 %end;

  34.         %let rc1=%SYSFUNC(FILENAME(fileref1));
  35.         %let rc2=%SYSFUNC(FILENAME(fileref2));
  36. %end;

  37. /* 情形2:当输入参数OutFilePath不包含文件名时 */
  38. %else %do;
  39.         options noxwait;

  40.         %local rc fileref;
  41.         %let rc=%SYSFUNC(FILENAME(fileref,&OutFilePath));
  42.         %if %SYSFUNC(FEXIST(&fileref))  %then
  43.                 %put NOTE: The directory "&OutFilePath" exists.;
  44.         %else %do;
  45.                 %SYSEXEC md &OutFilePath;
  46.                 %put %SYSFUNC(SYSMSG()) The directory has been created.;
  47.                 %end;
  48.         %let rc=%SYSFUNC(FILENAME(fileref));
  49. %end;

  50. %mend;


  51. %macro Demo();

  52. %ChkFile(d:\temp\data.xls);

  53. %mend;
复制代码



二维码

扫码加我 拉你入群

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

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

关键词:ChkFile sas基础 file 基础宏 directory 基础 基础宏 ChkFile SAS

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
xddlovejiao1314 + 100 + 100 + 5 + 5 + 5 精彩帖子
niuniuyiwan + 60 + 60 + 1 + 1 + 1 精彩帖子

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

本帖被以下文库推荐

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

沙发
xddlovejiao1314 学生认证  发表于 2015-10-13 08:40:04
谢谢分享。
已有 1 人评分论坛币 热心指数 收起 理由
niuniuyiwan + 10 + 3 精彩帖子

总评分: 论坛币 + 10  热心指数 + 3   查看全部评分

藤椅
niuniuyiwan 在职认证  发表于 2015-10-13 12:04:23
感谢楼主,很不错的系列,感谢分享,发帖不易,再次点赞!

板凳
wangyong8935 在职认证  发表于 2019-10-15 20:18:41

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-26 22:17