我遇到的问题是我没有权限在远程服务器上删除\重命名文件并且文件包含时间戳。所以我需要按名称下载文件。psftp 不能接受参数(或我知道的任何方式),我不能根据当前日期动态更改文件名。
因此,从我调用 psftp 命令的批处理文件中,我动态地创建了命令,并使用带有相关时间戳的文件。我只能复制今天的文件,这比每次都复制更好。
cd "C:\Files"
echo cd outbound > C:\SFTP\temp.txt
echo mget file_%date:~10,4%%date:~4,2%%date:~7,2%*.csv >> C:\SFTP\temp.txt
echo quit >> C:\SFTP\temp.txt
echo close >> C:\SFTP\temp.txt
C:\SFTP\psftp user@ftp.address.com -b C:\SFTP\temp.txt
close
exit
“echo cd outbound > C:\SFTP\temp.txt”清理旧文件并开始写入新文件的内容。“echo mget file_%date:~10,4%%date:~4,2%%date:~7,2% .csv >> C:\SFTP\temp.txt”导致创建命令:“ mget file_20151008 .csv " 下载所有以 "file_20151008..." 开头的文件,接下来的 2 行刚刚结束了操作和行 "C:\SFTP\psftp user@ftp.address.com -b C:\SFTP\ temp.txt" 执行它。
结果 temp.txt 如下所示:
cd outbound
mget file_20151008*.csv
quit
close