Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PSCP从早于昨天的SFTP传输多个文件_Sftp_Pscp - Fatal编程技术网

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

使用PSCP从早于昨天的SFTP传输多个文件,sftp,pscp,Sftp,Pscp,我正在使用以下命令从SFTP位置传输到本地文件夹。这会将所有文件从SFTP位置传输到本地文件夹 如何传输仅适用于(例如)比昨天旧的文件 cmd /c c:/putty/pscp -q -batch -pw password -i C:/putty/key_pk.ppk -r root@xx.xxx.xxx.xxx:/home/user/Folder1/* C:/LocalFolder1/SFTP/ cmd/c c:/putty/pscp-q-batch-pw password-ic:/putty

我正在使用以下命令从SFTP位置传输到本地文件夹。这会将所有文件从SFTP位置传输到本地文件夹

如何传输仅适用于(例如)比昨天旧的文件

cmd /c c:/putty/pscp -q -batch -pw password -i C:/putty/key_pk.ppk -r root@xx.xxx.xxx.xxx:/home/user/Folder1/* C:/LocalFolder1/SFTP/ cmd/c c:/putty/pscp-q-batch-pw password-ic:/putty/key\u pk.ppk-rroot@xx.xxx.xxx.xxx:/home/user/Folder1/*C:/LocalFolder1/SFTP/
谢谢。

pscp不能这样做

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


或者使用能够根据时间戳选择文件的SCP/SFTP客户端

例如,您可以使用以下批处理文件(
.bat
)下载超过一天的文件:

winscp.com /log=c:\path\to\winscp.log /command ^
    "open sftp://root:password@xx.xxx.xxx.xxx/ -privatekey=""C:\putty\key_pk.ppk"" -hostkey=""ssh-rsa 2048 xxxxxxxxxxx...=""" ^
    "get -filemask=<1D /home/user/Folder1/* C:\LocalFolder1\SFTP\" ^
    "exit"
winscp.com/log=c:\path\to\winscp.log/command^
“开sftp://root:password@xx.xxx.xxx.xxx/-privatekey=“”C:\putty\key_pk.ppk”“-hostkey=“”ssh rsa 2048 xxxxxxxxxx…”^

“get-filemask=pscp
不能这样做

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


或者使用能够根据时间戳选择文件的SCP/SFTP客户端

例如,您可以使用以下批处理文件(
.bat
)下载超过一天的文件:

winscp.com /log=c:\path\to\winscp.log /command ^
    "open sftp://root:password@xx.xxx.xxx.xxx/ -privatekey=""C:\putty\key_pk.ppk"" -hostkey=""ssh-rsa 2048 xxxxxxxxxxx...=""" ^
    "get -filemask=<1D /home/user/Folder1/* C:\LocalFolder1\SFTP\" ^
    "exit"
winscp.com/log=c:\path\to\winscp.log/command^
“开sftp://root:password@xx.xxx.xxx.xxx/-privatekey=“”C:\putty\key_pk.ppk”“-hostkey=“”ssh rsa 2048 xxxxxxxxxx…”^

“get-filemask=谢谢,这很有帮助。但是,我今天试图修改一个文件,如果我像下面这样做,它会得到所有文件,而不仅仅是今天更新/修改的文件。为什么呢?我的语法错了吗
winscp.com/log=c:\path\to\winscp.log/command^“打开sftp://root:password@xx.xxx.xxx.xxx/-privatekey=”“C:\putty\key_pk.ppk”“-hostkey=”“ssh rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx”“^ get-filemask*>=%TIMESTAMP#yyyy-mm-dd%/home/user/Folder1/*C:\LocalFolder1\SFTP\ ^退出
-filemask
后面缺少一个等号。应该是:
-filemask=*>=%TIMESTAMP#yyyy-mm-dd%
(我的回答中可以省略
*
)我也试过了。但是脚本会获取SFTP位置上的所有文件(我有3个文件;1月19日、1月20日和1月21日)。请参见下面的输出:`get-filemask=*>=/home/user1/folder1/*C:\localfolder1\`OK,您从批处理文件运行WinSCP,其中
%
具有特殊含义(实际上与WinSCP脚本中相同)。您必须将它们加倍才能为WinSCP保留它们:
-filemask=*>=%%TIMESTAMP#yyyy mm dd%%
请参阅要在批处理文件的命令行中使用
%TIMESTAMP%%
,您需要将
%
加倍为
%TIMESTAMP%%
,以避免批处理文件解释器试图解析变量。谢谢,这很有帮助。但是,我今天试图修改一个文件,如果我像下面这样做,它会得到所有文件,而不仅仅是今天更新/修改的文件。为什么呢?我的语法错了吗
winscp.com/log=c:\path\to\winscp.log/command^“打开sftp://root:password@xx.xxx.xxx.xxx/-privatekey=”“C:\putty\key_pk.ppk”“-hostkey=”“ssh rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx”“^ get-filemask*>=%TIMESTAMP#yyyy-mm-dd%/home/user/Folder1/*C:\LocalFolder1\SFTP\ ^退出
-filemask
后面缺少一个等号。应该是:
-filemask=*>=%TIMESTAMP#yyyy-mm-dd%
(我的回答中可以省略
*
)我也试过了。但是脚本会获取SFTP位置上的所有文件(我有3个文件;1月19日、1月20日和1月21日)。请参见下面的输出:`get-filemask=*>=/home/user1/folder1/*C:\localfolder1\`OK,您从批处理文件运行WinSCP,其中
%
具有特殊含义(实际上与WinSCP脚本中相同)。您必须将它们加倍才能为WinSCP保留它们:
-filemask=*>=%%TIMESTAMP#yyyy mm dd%%
请参阅要在批处理文件的命令行中使用
%TIMESTAMP%%
,您需要将
%
加倍为
%TIMESTAMP%%
,以避免批处理文件解释器试图解析变量。