FTP Shell - 获取所有不等于条件的文件
FTP Shell - Get all files that do not equal a condition
我目前正在使用 VBA (Excel) 调用 FTP Shell 从目录中抓取文件。我想获取目录中不包含通配符 %payment% 的所有文件,但我不确定语法。
Sub executeFTPBatch()
Call Shell("FTP -i -s:C:\temp\ftp_directions.txt")
End Sub
所以我的文本文件打开FTP服务器,输入user/pw然后选择目录。我只需要将命令放入文本文件。像
mget *. * where filename != %payment% "c:\temp\" "ftp://currentfolder"
如有任何帮助,我们将不胜感激!
我不确定,什么是 "wildcard %payment%"。
尽管内置 Windows ftp.exe
不 以任何方式支持负掩码。
我可以建议这些解决方案:
运行 ftp.exe
一次获取目录列表(ls
命令);解析您的 VBA 代码中的列表; select你想要的文件;并动态生成另一个 ftp
脚本来下载这些文件。
使用另一个支持负掩码的命令行 FTP 客户端。
例如 WinSCP scripting 你可以这样做:
Call Shell( _
"C:\path\WinSCP.com /log=C:\path\excel.log /command " & _
"""open ftp://user:password@example.com/"" " & _
"""get /path/* C:\path\ -filemask=|*%payment%*"" " & _
"""exit""")
为了便于阅读,以上 运行s 这些 WinSCP 命令:
open ftp://user:password@example.com/
get /path/* C:\path\ -filemask=|*%payment%*
exit
如果您愿意,可以将命令放入脚本文件,运行 脚本使用 /script=
command-line parameter,类似于 ftp -s:
,而不是 /command
.
请参阅 Converting Windows FTP script to WinSCP script 的指南。
另见 WinSCP file mask reference。
或者您可以使用 VBA 代码中的 WinSCP .NET assembly via COM。
(我是WinSCP的作者)
我目前正在使用 VBA (Excel) 调用 FTP Shell 从目录中抓取文件。我想获取目录中不包含通配符 %payment% 的所有文件,但我不确定语法。
Sub executeFTPBatch()
Call Shell("FTP -i -s:C:\temp\ftp_directions.txt")
End Sub
所以我的文本文件打开FTP服务器,输入user/pw然后选择目录。我只需要将命令放入文本文件。像
mget *. * where filename != %payment% "c:\temp\" "ftp://currentfolder"
如有任何帮助,我们将不胜感激!
我不确定,什么是 "wildcard %payment%"。
尽管内置 Windows ftp.exe
不 以任何方式支持负掩码。
我可以建议这些解决方案:
运行
ftp.exe
一次获取目录列表(ls
命令);解析您的 VBA 代码中的列表; select你想要的文件;并动态生成另一个ftp
脚本来下载这些文件。使用另一个支持负掩码的命令行 FTP 客户端。
例如 WinSCP scripting 你可以这样做:
Call Shell( _ "C:\path\WinSCP.com /log=C:\path\excel.log /command " & _ """open ftp://user:password@example.com/"" " & _ """get /path/* C:\path\ -filemask=|*%payment%*"" " & _ """exit""")
为了便于阅读,以上 运行s 这些 WinSCP 命令:
open ftp://user:password@example.com/ get /path/* C:\path\ -filemask=|*%payment%* exit
如果您愿意,可以将命令放入脚本文件,运行 脚本使用
/script=
command-line parameter,类似于ftp -s:
,而不是/command
.请参阅 Converting Windows FTP script to WinSCP script 的指南。
另见 WinSCP file mask reference。
或者您可以使用 VBA 代码中的 WinSCP .NET assembly via COM。
(我是WinSCP的作者)