我正在编写一个脚本来同步两个文件夹。我从本地文件夹中选择图像,然后在FTP上进行同步。
我必须应用三个过滤器:
仅图像文件(IT工作:*.jpg; *.png...
)
仅较新的文件(IT工作:*.png>=%2019-04-10#yyyy-mm-dd%
)
我不想复制文件夹(不起作用)
我正在使用的代码有效,但是它也复制了子文件夹。在互联网上,他们说我必须使用"|*/"
来跳过子文件夹。但是,如果我在文件掩码中使用它,它将复制所有内容,而忽略其他过滤器。
这是我使用的代码:
在这里我使用密码连接到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
但是它不起作用,或者它告诉我文件掩码的参数数量错误。
如何使用图像过滤器(基于扩展名和日期)并从同步中排除子文件夹?
我发现了其他溢出问题,但没有一个匹配我的特定问题。
答案 0 :(得分:0)
%2019-04-10#yyyy-mm-dd%
是错误的,应该只是2019-04-10
。"|*/"
中删除。请参阅WinSCP file masks的文档。
这应该做,您想要做的:
-filemask="*.png>=2019-04-10; *.jpeg>=2019-04-10; *.jpg>=2019-04-10 | */"