我需要创建一个脚本,以便在调度程序的基础上使用Z:\
命令仅将aws s3 cp
驱动器中创建的文件复制到AWS S3。
例如在Z:\中,目前我有这些文件:
Filename Date Modified
BELSIZE.0.DB2.NODE0000.CATN0000.20160313090011.001 3/13/2016 9:00 AM
BELSIZE.0.DB2.NODE0000.CATN0000.20160314090015.001 3/14/2016 9:00 AM
BELSIZE.0.DB2.NODE0000.CATN0000.20160315090010.001 3/15/2016 9:00 AM
BELSIZE.0.DB2.NODE0000.CATN0000.20160315100012.001 3/15/2016 10:00 AM
我只需将日期为2016年3月15日的最后2个文件复制到AWS S3。
我现在拥有的是:
列出今天创建的路径+文件名:
forfiles /P "Z:\" /s /m *.* /d +0 /c "cmd /c echo @path
将文件复制到AWS S3:
aws s3 cp Z:\BELSIZE.0.DB2.NODE0000.CATN0000.20160315090010.001 s3://backup
我正在考虑将1)作为列表,循环1)并执行2)。我怎么能这样做?
我尝试了以下命令。今天创建的文件不会被复制到S3。
forfiles /P "Z:\" /s /m *.001 /d +0 /c "cmd /c aws s3 cp @path s3://backup"
答案 0 :(得分:1)
使用WinSCP很容易。要仅上传今天的文件,请使用批处理文件,如:
winscp.com /log=S3.log /ini=nul /command ^
"open s3://S3KEY:S3SECRET@s3.amazonaws.com/" ^
"put -filemask=>=today Z:\* /bucket/" ^
"exit"
>=today
keyword仅受WinSCP 5.15支持。在旧版本中,您可以使用%TIMESTAMP%
syntax:
"put -filemask=>=%%TIMESTAMP#yyyy-mm-dd%% Z:\* /bucket/" ^
您需要URL-encode special characters in the credentials。对于您,WinSCP GUI可以generate an S3 script template,如上所述。
参考文献:
%TIMESTAMP%
syntax; (我是WinSCP的作者)