【问题标题】:Automatically deleting old SAS temporary files自动删除旧的 SAS 临时文件
【发布时间】:2017-01-09 07:12:02
【问题描述】:
早安,
普通的 SAS 作业会在我们的机器上定期触发。有时作业会失败并留下临时文件。 (windows环境下存放在C:\Users\\AppData\Local\Temp\SAS Temporary Files\。)
最终这些堵塞了机器。目前我们必须手动删除它们。我想知道 SAS 是否可以定期删除旧的(比如说一周以上)旧文件?安排独立的清理工作是我正在寻找的。
我可以使用其他方式来做到这一点,比如python脚本,但是单一的语言环境会带来管理层的祝福和仁慈。
编辑:路径名显示不正确
【问题讨论】:
标签:
automation
sas
temporary-files
【解决方案1】:
这是一个调用 DOS forfiles 命令并删除每个匹配文件的宏。 pushd 也允许它与 UNC 路径一起使用。
%MACRO DELFILES(PATH,MASK,AGE) ;
%IF %SYSFUNC(fileexist(&PATH)) %THEN %DO ;
数据_null_;
infile "pushd ""&PATH"" && forfiles /P ""."" /S /M &MASK /D -&AGE /C ""cmd /c del @path"" 2>nul" 管道截断;
输入 ;
把 _INFILE_ ;
跑 ;
%结尾 ;
%修复;
所以,用你的例子:
/* 删除超过 7 天的所有内容 */
%DELFILES(C:\Users\&SYSUSERID\AppData\Local\Temp\SAS 临时文件\,*,7) ;
您可以将其放在自动执行程序中,或者放在程序的开头或结尾。