OPTIONS PS=MAX LS=MAX NOCENTER SASMSTORE=SASUSER MSTORED MAUTOSOURCE;
/*获取指定文件夹的指定类型的所有文件*/
%MACRO GET_NAME(DIRNAME,TYP,OUT_TABLE)/STORE;/*参数有两个:路径,文件类型后缀*/
%PUT %STR(----------->DIRNAME=&DIRNAME) ;
%PUT %STR(----------->TYP=&TYP) ;
DATA TEMP;
RC=FILENAME("DIR","&DIRNAME");/*把&DIRNAME值传给文件引用符“DIR"*/
OPENFILE=DOPEN("DIR");/*得到路径标示符OPENFILE,DOPEN是打开directory的sas内置函数*/
IF OPENFILE>0 THEN DO;/*如果OPENFILE>0表示正确打开路径*/
NUMMEM=DNUM(OPENFILE);/*得到路径标示符OPENFILE中member的个数nummem*/
DO II=1 TO NUMMEM;
NAME=DREAD(OPENFILE,II);/*用DREAD依次读取每个文件的名字到NAME*/

filepath="&DIRNAME"||NAME;
fnum=compress(NAME,".xml","");
fnum=compress(fnum,"user_case","");

OUTPUT;/*依次输出*/
END;
END;
KEEP NAME filepath fnum;/*只保留filepath、fnum列*/
RUN;

PROC SORT DATA=TEMP;/*按照NAME排序*/
BY DESCENDING NAME;
%IF &TYP^=ALL %THEN %DO;/*是否过滤特定的文件类型&TYP*/
WHERE INDEX(UPCASE(NAME),UPCASE(".&TYP"));/*Y,则通过检索NAME是否包含&TYP的方式过滤文件类型*/
%END;
RUN;

DATA &OUT_TABLE(KEEP=NAME ID DIRECTORY);
LENGTH DIRECTORY $20.;
SET TEMP;
ID=_N_;
DIRECTORY="&DIRNAME.";
RUN;

PROC APPEND BASE=S.DIR DATA=&OUT_TABLE;
RUN;

RUN;
%MEND;

LIBNAME S '.';

%MACRO GETALL;
DATA _NULL_;
DO I='报告样例及指标说明','数据字典';
CALL EXECUTE(CATS('%GET_NAME(.\'||I||',xlsx,DIR)'));
END;
DO I='报告样例PDF版';
CALL EXECUTE(CATS('%GET_NAME(.\'||I||',pdf,DIR)'));
END;

**%GET_NAME(.\白皮书,pdf,DIR);
/*参数1:log文件所在位置
参数2:读取文件类型
参数3:log文件名存储的数据集名称*/
%MEND;

%GETALL;

ODS HTML FILE='.\目录.xls';
PROC PRINT DATA=S.DIR;
RUN;

ODS HTML CLOSE;

SAS 读取指定目录下文件列表宏的更多相关文章

  1. iOS案例:读取指定目录下的文件列表

    // // main.m // 读取指定目录下的文件列表 // // Created by Apple on 15/11/24. // Copyright © 2015年 Apple. All rig ...

  2. Python--通过索引excel表将文件进行文件夹分类的脚本+读取指定目录下所有文件名的脚本

    1.通过索引excel表将文件进行文件夹分类的脚本,此脚本由于将ip和id对应并生成对应id的文件夹将文件进行分类,也可以任意规定表格内容,通过vul_sc_ip.txt和xlsx文件进行索引. # ...

  3. Java 读取指定目录下的文件名和目录名

    需求:读取指定目录下的文件名和目录名 实现如下: package com.test.common.util; import java.io.File; public class ReadFile { ...

  4. Java基础---Java---IO流-----File 类、递归、删除一个带内容的目录、列出指定目录下文件夹、FilenameFilte

    File 类 用来将文件或者文件夹封装成对象 方便对文件与文件夹进行操作. File对象可以作为参数传递给流的构造函数 流只用操作数据,而封装数据的文件只能用File类 File类常见方法: 1.创建 ...

  5. IO流-获取指定目录下文件夹和文件对象【File类】

    一.运用File类实现获取指定目录下文件夹和文件对象 1.File类 2.方法: 获取文件绝对路径 :getAbsolutePath 案例: import java.io.File; /** * 获取 ...

  6. python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小

    本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏. 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小,类似Windows如下功能: 模块介绍: from ftplib import F ...

  7. SpringBoot打成jar包后,获取不到读取resources目录下文件路径的问题

    问题描述: Springboot没有打成jar之前,可以成功获取读取resources目录下xxx.json文件的 路径.但是打成jar包后,接口调不通,原因是获取不到文件的路径. 原因: 在本地进行 ...

  8. 遍历并读取指定目录下的所有文件内容,写入Map集合然后输出在控制台和本地文件

    public class FileWrite { public static void main(String[] args) throws Exception { //封装数据源目录 File sr ...

  9. Python读取指定目录下指定后缀文件并保存为docx

    最近有个奇葩要求 要项目中的N行代码 申请专利啥的 然后作为程序员当然不能复制粘贴 用代码解决.. 使用python-docx读写docx文件 环境使用python3.6.0 首先pip安装pytho ...

随机推荐

  1. Docker 部署应用过程记录

    Kibana直接部署到centos中,老是没有任何征兆退出,今天将他移动到docker中部署,以下是部署的过程,做个记录防止忘记 1.安装Docker # yum install docker 2.启 ...

  2. you-get 下载视频

    亲测有效,没在别的平台试,道理是相通的 平台:Windows 10 所需工具: python3,pip3,you-get 步骤流程: 正确安装python3,配置环境变量 (目前使用的是3.6+) 打 ...

  3. C# 对结构体和指针的使用

    //结构体的定义 [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]        pub ...

  4. win11.2.0.4lsnrctl status hang

    以前听客户说监听日志大于4G,监听出现问题.本次另一个客户也出现这个问题,表现为监听lsnrctl start,status长久hang住 匹配mos WINDOWS: Listener Hangs ...

  5. 如何在运行时(Runtime)获得泛型的真正类型

    前言 由于Java 的类型擦除机制,在编译时泛型都被转为了Object,例如List<String>经过编译之后将变为类型 List.可以通过以下的方式再运行时获得泛型的真正类型 泛型如何 ...

  6. docker3

    Docker容器的设置资源(cpu,内存)限制: #docker  run –memory=200M xxxx-image  --vm 1 –verbose #docker  run  --cpu-s ...

  7. 爬虫基础之urllib库(代码演示)

    # 自定义opener   from urllib.request import ProxyHandler,build_opener from urllib.error import URLError ...

  8. ASCII工具类

    对字符串简单的加密解密 描述:加密的时候对每个字符转成ASCII的时候进行 +1操作,最后用 “/” 拼接,解密原理相反. /** * ASCII 工具类 * Created by Administr ...

  9. vue + BMap实现常用地图

    实现功能: 缩放 自定义icon maker 多个覆盖点的点击事件 获取两点的距离 信息窗口的点击事件 <template> <div id="allmap" r ...

  10. JavaScript原型(第五天)

    避免对象重复使用,有时候js中会用到原型 function Person(){ name="test"; age=123; } var car={ price=10000; } P ...