SFTP上的SAS重命名文件

SFTP上的SAS重命名文件,sas,sftp,Sas,Sftp,我在SAS中的任务是通过扩展名为tmp的SFTP上传文件,并在上传完成后将其重命名为csv。由于我不是服务器的管理员,我的调试输出是有限的,我正在努力寻找正确的实现。以下代码不会在SAS日志中生成错误,但不会重命名文件: %let host=...; %let sftpUser = ...; %let filename_tmp=20160301-test01-sas.tmp; %let filename=20160301-test01-sas.csv; %let sftpPath=...; F

我在SAS中的任务是通过扩展名为tmp的SFTP上传文件,并在上传完成后将其重命名为csv。由于我不是服务器的管理员,我的调试输出是有限的,我正在努力寻找正确的实现。以下代码不会在SAS日志中生成错误,但不会重命名文件:

%let host=...;
%let sftpUser = ...;
%let filename_tmp=20160301-test01-sas.tmp;
%let filename=20160301-test01-sas.csv;
%let sftpPath=...;

FILENAME test SFTP "&sftpPath.&filename_tmp." 
HOST="&host." 
USER="&sftpUser."   
DEBUG;

proc export data=.... outfile=test dbms=csv replace; 
run;

data _null_;
rc=rename("test&sftpPath.&filename_tmp.", "test&sftpPath.&filename.", 'file');
run;
我已经阅读了文件名和重命名的文档,但我无法获得如何结合这两种语句的线索-非常感谢任何帮助、提示或替代方案

谢谢 斯蒂芬

目标服务器上正在运行一个脚本,扫描csv文件并每分钟移动一次,因此在上载未完成时存在文件被移动的危险


我很确定文件没有被移动的危险,因为它应该被锁定,直到上传完成。试试看。

有什么原因不能在sftp之前在本地执行重命名吗?你好,floydn,是的,确实有一个原因。目标服务器上正在运行一个脚本,扫描csv文件并每分钟移动一次,因此在上载未完成时存在文件被移动的危险。因此,我想将它们上传为tmp,然后将其重命名。嗨,Crna Krv,谢谢你的反馈-我用一个包含很多行的文件的导出测试了它,该文件在导出过程中被删除。因此,我需要实现重命名版本。