0

我正在尝试登录 ftp 主机并下载文件。我不确定如何找到该文件,因为它存储在日期下的目录中并且每天都会更改。这就是我到目前为止所拥有的

Option Explicit
Dim objFSO, objMyFile, objShell, strFTPScriptFileName, strFilePut
Dim strLocalFolderName, strFTPServerName, strLoginID
Dim strPassword, strFTPServerFolder


strLocalFolderName = "c:\foldername"
strFTPServerName = "ftp.host.com"
strLoginID = "somelogin"
strPassword = "password8"

所以在密码之后我将如何登录日期文件并找到例如文件将在

20130722/文件名.ftp

4

1 回答 1

1

在 VBScript 中执行此操作的常用方法是生成一个 FTP 脚本并使用以下命令运行它ftp.exe

'variable definitions
...

Function qq(str)
  qq = Chr(34) & str & Chr(34)
End Function

Set fso = CreateObject("Scripting.FileSystemObject")
Set sh  = CreateObject("WScript.Shell")

remoteDir = Year(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2)
tempDir   = sh.ExpandEnvironmentStrings("%TEMP%")
script    = fso.BuildPath(tempDir, "download.ftp")
logfile   = fso.BuildPath(tempDir, "ftp.log")

Set f = fso.OpenTextFile(script, 2, True)
f.WriteLine "open" & strFTPServerName & vbNewLine _
  & "user" & strLoginID & vbNewLine _
  & strPassword & vbNewLine _
  & "prompt no" & vbNewLine _
  & "lcd " & strLocalFolderName & vbNewLine _
  & "cd " & remoteDir & vbNewLine _
  & "get cs.ftp" & vbNewLine _
  & "bye"
f.Close

rc=sh.Run("%COMSPEC% /c ftp -s:" & qq(script) & " >" & qq(logfile), 0, True)

WScript.Echo "FTP finished with exit code " & rc & "."

fso.DeleteFile script, True

以上应该是开箱即用的。如果您可以随意安装其他软件,ActiveXperts 的网络组件中包含的 FTP 客户端可能是另一种选择。

于 2013-07-21T09:07:05.500 回答