全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2691 6
2014-03-14
悬赏 10 个论坛币 未解决

My question:

I have many excel files onc:\temp\p001.xls…..p100.xls

I want to rename p001.xls…..p100.xls to q001.xls…..q100.xls

ie. (rename q001.xls= p001.xls ….. q100.xls=p100.xls)

------------------------------------------------------------------------

I search this paper “Useful SAS Macros andRoutines” from SAS Global Forum 2007 by Flora and Miguel

(paper 059-2007) tofind their SAS codes only mention about

“Macro to Open(Delete) Excel file” onpage 1, None “Macro to Rename Excel file”,

Sir mat  you help me to write a code follow theirs,THS!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-3-14 22:55:40
Hints to “Macro to Rename Excel file”
Sir can  you  write a similar with code follow below code  ,THS!
----------------------------------------------------------
/*macro to open Excel and excel file*/
%Macro OpenXls(pfile);
OPTIONS NOXWAIT NOXSYNC MISSING='';
x"C:\Archiv~1\micros~2\Office10\execel.exe/&pFile..xls";
%sleep(2);
%MEND;
------------------------------------------------------
This codes almostly copy from this paper
“Useful SAS Macros and Routines” from SAS Global Forum 2007
by Flora and Miguel

%MACRO Sleep(&pSeconds);
  DATA_NULL_;
  vVar1=SLEEP(&pseconds);
RUN;
%MEND;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-3-15 20:05:03
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-3-16 20:20:28
SIR : BUGS IN CODES

14         GOPTIONS ACCESSIBLE;
15         %macro rename(dir=);
16         
17         filename rename pipe "dir &dir.\*.xls /b";
18         
19         
20         data _null_;
21         
22                 infile rename;
23         
24                 input name:$100.;
25         
26                         old_name=name;
27         
28                         substr(name,1,1)='q';
29         
30                         call symputx("old_name"||left(_n_),old_name);
31         
32                         call symputx("name"||left(_n_),name);
33         
34                         call symputx("number",left(_n_));
35         
36         run;
37         
38         
39         data _null_;
40         
41                 %do i=1 %to &number.;
42         
43                         rc=rename("&dir.\&&old_name&i.","&dir.\&&name&i.","file");
44         
45                 %end;
46         
47         run;
48         
49         %mend;
50         
51         
52         %rename(dir=D:\test);
ERROR: Insufficient authorization to access PIPE.
ERROR: Error in the FILENAME statement.
ERROR: No logical assign for filename RENAME.
WARNING: Apparent symbolic reference NUMBER not resolved.
ERROR: A character operand was found in the %EVAL function or %IF condition where a
       numeric operand is required. The condition was: &number.
ERROR: The %TO value of the %DO I loop is invalid.
ERROR: The macro RENAME will stop executing.
53         
54         GOPTIONS NOACCESSIBLE;
55         %LET _CLIENTTASKLABEL=;
56         %LET _CLIENTPROJECTPATH=;
57         %LET _CLIENTPROJECTNAME=;
58         %LET _SASPROGRAMFILE=;
59         
60         ;*';*";*/;quit;run;
                     ____
                     180
ERROR 180-322: Statement is not valid or it is used out of proper order.
61         ODS _ALL_ CLOSE;
62         
63         
64         QUIT; RUN;
65         
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-3-17 10:02:30
如果只是改原始档名
网路上搜寻 批次改名 就可以找到软件一次将档案一起改掉了
附件列表

rename.rar

大小:641.92 KB

 马上下载

批次改名软件

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-3-17 20:59:51
3qsir 发表于 2014-3-16 20:20
SIR : BUGS IN CODES

14         GOPTIONS ACCESSIBLE;
14         GOPTIONS ACCESSIBLE;
15         %macro rename(dir=);
16         filename rename pipe "dir &dir.\*.xls /b";
17         
18         data _null_;
19                 infile rename;
20                 input name:$100.;
21                         old_name=name;
22                         substr(name,1,1)='q';
23                         call symputx("old_name"||left(_n_),old_name);
24                         call symputx("name"||left(_n_),name);
25                         call symputx("number",left(_n_));
26         run;
27         
28         data _null_;
29                 %do i=1 %to &number.;
30                         rc=rename("&dir.\&&old_name&i.","&dir.\&&name&i.","file");
31                 %end;
32         run;
33         %mend;
34         
35         %rename(dir=D:\test);

NOTE: 数值已转换为字符值,位置:(行:列)。
      35:224   35:44    35:99   
NOTE: INFILE RENAME 是:
      未命名的管道访问设备,
      PROCESS=dir D:\test\*.xls /b,RECFM=V,LRECL=256

NOTE: 从 INFILE RENAME 中读取了 3 条记录。
      最小记录长度是 8。
      最大记录长度是 8。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.14 秒
      CPU 时间          0.01 秒
      


NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.00 秒


You can have a look:
http://support.sas.com/kb/16/109.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群