psftp.exe从服务器获取文件并删除

时间:2014-07-04 16:07:53

标签: batch-file file-io ssh sftp

我正在使用psftp.exe从服务器下载文件。我下载这些文件后是否有一种简单的方法可以删除这些文件,但下次下载时可能会留下服务器上可能出现的新文件?

这是我的命令行:

psftp.exe domain.com -i keys\private.ppk
get *.xml

编辑:我想将文件从Linux机器下载到Windows PC。

2 个答案:

答案 0 :(得分:12)

psftp没有简单的方法可以做到这一点。您必须解析其输出以查找已成功下载的文件。


虽然您可以使用WinSCP轻松完成此操作。只需使用get -delete *.xml command

完整的WinSCP脚本将是:

open sftp://domain.com/ -privatekey=keys\private.ppk -hostkey=...
get -delete *.xml
exit

查看introduction to WinSCP scripting

另请参阅guide for converting PSFTP script to WinSCP

您也可以为此WinSCP GUI generate script这样做。

(我是WinSCP的作者)

答案 1 :(得分:-1)

我会以不同的方式处理这个问题。不是从服务器中删除文件,而是将下载的文件名添加到“已下载文件”的本地表中。然后,当您再次扫描 FTP 以查找新文件时,忽略该表中的任何内容。

这样下次运行下载脚本时,您只会获得新文件,而旧文件仍保留在服务器上。

您可以使用另一个脚本来定期运行并删除超过特定期限的所有文件。

WINSCP 很好,Martin(作者)几乎会在每个 PuTTy 帖子中推荐它,但它是一个完全基于 GUI 的应用程序,不适合我。如果您确实需要在命令行上完成所有操作,那么 WINSCP 通常不是一个选项。