SAS 重命名外部文件

问题描述 投票:0回答:1

我正在尝试重命名特定文件夹中保存的一些文件。我在重命名它们时还包含了一些条件,例如当文件名包含“214”时,则将其重命名为A;当文件名包含“217”时,将其重命名为B等。顺便说一句,所有文件都是XLSX。

下面是我的代码,我不断在日志中收到“错误重命名:”。有人可以看一下我的代码并为我纠正它吗?谢谢!!

%let folder = /report/Sep2024;
filename mydir "&folder.";

data _null_;
length old_name $300 new_name $300;
did = dopen('mydir'); 

if did > 0 then do;
    do i = 1 to dnum(did);

        file_name = dread(did, i);

        old_name = "&folder./" || file_name; 

        new_name = "";

        if find(file_name, '214') > 0 then new_name = "&folder./A.xlsx"; 
        else if find(file_name, '217') > 0 then new_name = "&folder./B.xlsx"; 
        else if find(file_name, '445') > 0 then new_name = "&folder./C.xlsx"; 
        else if find(file_name, '311') > 0 then new_name = "&folder./D.xlsx"; 

        if new_name ne "" then do;
            
    rc = rename("old_name","new_name",'file');
         
            if rc = 0 then put "Successfully renamed: " old_name " to " new_name;
            else put "Error renaming: " old_name " to " new_name;
        end;
    end;
    rc = dclose(did); 
end;
run;

我需要在某些条件下重命名保存在特定文件夹中的外部Excel文件。

sas sas-macro
1个回答
0
投票

您正在引用您想要 old_name 值而不是“old_name”的变量名称

rc = rename("old_name","new_name",'file');

尝试

rc = rename(old_name,new_name,'file');
© www.soinside.com 2019 - 2024. All rights reserved.