您好我的要求是制药公司。
要求如下:
SAS作业每天运行,并应用了一些拒绝验证。
被拒绝的数据会转到特定的拒绝文件夹。现在我们已经被要求创建一个代码,其中代码“检查文件夹是否存在于名称为当前日期(今天日期)的位置,如果不存在,则应该创建它并从中放入被拒绝的数据文件REJECT FOLDER 到创建的日期文件夹(我有创建文件夹的代码。)
现在是捕获,其他开发人员应编写代码,通过该代码,今天日期应作为yyyymmdd
格式附加在文件名的末尾。
我需要在最近的时间检查文件,并将其放在当前日期文件夹中。
E.g文件 c:\ sas \ xxxaaaa_20140716.dat ,该文件应复制到 c:\ reject \ 20140716 \ 文件夹。
我开发了一个代码来检查存在并创建一个名称为今天日期的文件夹。
请帮助我在两者之间编写代码以根据条件移动文件。 P .S。我是SAS编码的新手,所以我会非常感谢您准确的代码。谢谢。
代码:
%macro fcheck(dir=) ;
options noxwait; %* no need to wait for command prompt action from user;
%local var fileref ;
%let var = %sysfunc(filename(fileref,&dir)) ;
%if %sysfunc(fexist(&fileref)) %then %* to check if the file xists;
%put NOTE: The directory "&dir" exists ; %* here we can put a statement to move our reject file to the date folder;
%else
%do ;
%sysexec md &dir ; %* create the directory as our current date;
%put %sysfunc(sysmsg()) The directory has been created. ; %*this message may not be required for us;
%end ;
%let var=%sysfunc(filename(fileref)) ;
%mend fcheck ;
%let sascode=%sysfunc(date(), yymmddn8.);
%fcheck(dir=c:\dir) ; %* directory specification goes here ;
%fcheck(dir=c:\dir\&sascode);%* checkin my directory path and name
答案 0 :(得分:0)
在SAS中复制文件的几种方法:
xcommand(这将使用dos系统复制文件)
X "copy c:\temp\*.* C:\temp\CopyFiles\*.* > C:\temp\CopyFiles\reportcp.txt";
systask:
systask command "copy c:\temp\*.* C:\temp\CopyFiles\*.*" wait status=copyfl;
请注意,systask与SAS异步运行,因此如果您需要等待SYSTASK命令的结果,则在继续之前需要使用WAITFOR或WAIT选项