【问题标题】: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) ;

    您可以将其放在自动执行程序中,或者放在程序的开头或结尾。

    【讨论】:

      【解决方案2】:

      如果您想要一个仅基于 SAS 功能的跨平台方法,而不使用特定于操作系统的命令,那么这个答案是一个很好的起点:

      https://*.com/a/1412947/667489

      您只需要添加一两行额外的行来遍历所有工作目录并删除所有文件。

      【讨论】:

        最近更新 更多