在WinSCP中同步文件掩码-将文件过滤器与子目录排除合并

时间:2019-05-22 08:02:43

标签: windows date ftp winscp

我正在编写一个脚本来同步两个文件夹。我从本地文件夹中选择图像,然后在FTP上进行同步。

我必须应用三个过滤器:

  1. 仅图像文件(IT工作:*.jpg; *.png...

  2. 仅较新的文件(IT工作:*.png>=%2019-04-10#yyyy-mm-dd%

  3. 我不想复制文件夹(不起作用)

我正在使用的代码有效,但是它也复制了子文件夹。在互联网上,他们说我必须使用"|*/"来跳过子文件夹。但是,如果我在文件掩码中使用它,它将复制所有内容,而忽略其他过滤器。

这是我使用的代码:

在这里我使用密码连接到SFTP服务器

open sftp://USERNAME:PASSWORD@myFTP.com -hostkey="ssh-rsa 4096 JvxxxxxxxxxxxxxxxxxxVx8/5VSw="
option batch
option transfer binary

我在这里同步:

synchronize remote -filemask="*.png>=%2019-04-10#yyyy-mm-dd%; *.jpeg>=%2019-04-10#yyyy-mm-dd%; *.jpg>=%2019-04-10#yyyy-mm-dd%;" H:\MyImageFolder /test/DestinationFolder/ -nopreservetime 

我尝试过:

synchronize remote -filemask="*.png>=%2019-04-10#yyyy-mm-dd%; *.jpeg>=%2019-04-10#yyyy-mm-dd%; *.jpg>=%2019-04-10#yyyy-mm-dd%; "|*/" " H:\MyImageFolder /test/DestinationFolder/ -nopreservetime 

但是它不起作用,或者它告诉我文件掩码的参数数量错误。

如何使用图像过滤器(基于扩展名和日期)并从同步中排除子文件夹?

我发现了其他溢出问题,但没有一个匹配我的特定问题。

1 个答案:

答案 0 :(得分:0)

  1. %2019-04-10#yyyy-mm-dd%是错误的,应该只是2019-04-10
  2. 您的文件掩码周围已经有双引号,因此请将其从"|*/"中删除。

请参阅WinSCP file masks的文档。


这应该做,您想要做的:

-filemask="*.png>=2019-04-10; *.jpeg>=2019-04-10; *.jpg>=2019-04-10 | */"