应用sas在ftp上批量下载文件

应用sas在ftp上批量下载文件

做数据分析,难免会有其他的数据获取方式,求人不如求己,用sas的小伙伴不要气馁!

接下来让我们看一下sas代码实现在ftp上批量下载文件

首先我们先上代码:

%macro getfile(lcd,cd,user,pwd,host);

  filename dir ftp '' ls user="&user." pass ="&pwd."

        host="&host."  cd = "&cd." prompt;

/*获取ftp的cd地址下的文件目录*/

data _null_;

    length fname $50.;

    infile dir;

    input fname;

    put fname = ;

/*生成宏变量和循环次数*/

    call symput(compress("fname"||_N_),compress(fname));

    call symput("count",_N_);

run;

    %do i = 1 %to &count.;

    filename remote ftp "&cd." DIR

                    host="&host."

                    user="&user." pass="&pwd." prompt rcmd="binary" recfm=s debug;

  filename local "&lcd." recfm=n;

/*文件下载*/

  data _null_;

    infile remote("&&fname&i.") NBYTE=n;

    input;

    file local("&&fname&i.");

    put _infile_ @@;

  run;

%end;

%mend;

然后我们就代码里的细节进行掌握

我们就libname与filename的区别来理解filename的应用

libname:libname是建立一个逻辑库,表示一个library

filename: 是用来表示一个计算机中的文件 ,也可以是一个目录,Filename的文件需要通过input变化为数据                    集才能使用


如果想实现上传只需要把“文件下载”里的remote和local进行调换

下面来看一下_null_数据集里内容就是ftp目标文件夹里的文件名

还有最后下载结果:


是不是很强大,所有格式都没问题!!!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 部分内容转载自搜狗百科 cmd是command的缩写.即命令提示符(CMD),是在OS / 2 , Windows...
    青冥之上阅读 7,007评论 0 24
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 12,561评论 1 19
  • 运行操作 CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) CM...
    小明yz阅读 7,911评论 0 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,422评论 19 139
  • ftp 文件传输协议 跨平台 上传下载文件 vsftpd 工具:非常安全的文件传输协议;默认的命令端口21号,数据...
    柒夏锦阅读 9,552评论 1 9