使用PSCP从比昨天早的SFTP传输多个文件

问题描述:

我正在使用以下命令从SFTP位置传输到本地文件夹。这将所有文件从SFTP位置传输到本地文件夹。使用PSCP从比昨天早的SFTP传输多个文件

如何传输仅用于例如文件的文件比昨天还早?

 
cmd /c c:/putty/pscp -q -batch -pw password -i C:/putty/key_pk.ppk -r [email protected]:/home/user/Folder1/* C:/LocalFolder1/SFTP/ 

谢谢。

pscp不能这样做。

您所能做的就是使用-ls开关列出所有文件,解析输出以找到旧文件,并为识别的文件生成下载脚本。


或者使用一个SCP/SFTP客户端,能够通过他们的时间戳选择文件。

例如与WinSCP SFTP/SCP client,您可以使用下面的批处理文件(.bat)下载文件日期早于一天:

winscp.com /log=c:\path\to\winscp.log /command^
    "open sftp://root:[email protected]/ -privatekey=""C:\putty\key_pk.ppk"" -hostkey=""ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"""^
    "get -filemask=<1D /home/user/Folder1/* C:\LocalFolder1\SFTP\"^
    "exit" 

参考文献:

(我是WinSCP的作者)

+0

谢谢,这有帮助。但是,我试图在今天修改一个文件,如果我按照以下方式进行修改,它将获取所有文件,而不仅仅是当前更新/修改的文件。这是为什么?我的语法错了吗? 'winscp.com /log=c:\path\to\winscp.log/命令^ “open sftp:// root:[email protected]/ -privatekey =”“C:\ putty \ key_pk .ppk“”-hostkey =“”ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx“”“^ ” get -filemask *> =%TIMESTAMP#yyyy-mm-dd%/ home/user/Folder1/* C:\ LocalFolder1 \ SFTP \“^ ”exit“' –

+0

'-filemask'后面缺少一个等号。它应该是:'-filemask = *> =%TIMESTAMP#yyyy-mm-dd%'(和'*'可以省略,因为它在我的答案中) –

+0

我也试过。但是脚本获取了SFTP位置的所有文件(我有3个文件; 1月19日,1月20日和1月21日)。请看下面的输出: 'get -filemask = *> =/home/user1/folder1/* C:\ localfolder1 \' –