file-upload - 如何将 FTP 上传 VBScript 更改为 SFTP

标签 file-upload vbscript ftp sftp

我想将其更改为 SFTP 服务器。我应该如何更新以下脚本?

'FTP Upload
'Upload a file/folder to an FTP server 

Set oShell = CreateObject("Shell.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFSO
Varnow = now
vardate = Day(varnow) & "-" & Month(varnow) & "-" & Year(varnow) & ".csv"
Set objFSO = CreateObject("Scripting.FileSystemObject")
strFile = "D:/file.csv"
strRename = "D:/file-" & vardate
If objFSO.FileExists(strFile) Then
    objFSO.MoveFile strFile, strRename
End If

'Path to file or folder to upload
path = strRename

FTPUpload(path)
Sub FTPUpload(path)

    On Error Resume Next

    'Copy Options: 16 = Yes to All
    Const copyType = 16

    'FTP Wait Time in ms
    waitTime = 8000

    FTPUser = "ftuser"
    FTPPass = "psw"
    FTPHost = "hostname"
    FTPDir = "/Dir"

    strFTP = "ftp://" & FTPUser & ":" & FTPPass & "@" & FTPHost & FTPDir
    Set objFTP = oShell.NameSpace(strFTP)

    'Upload single file      
    If objFSO.FileExists(path) Then
        Set objFile = objFSO.getFile(path)
        strParent = objFile.ParentFolder
        Set objFolder = oShell.NameSpace(strParent)

        Set objItem = objFolder.ParseName(objFile.Name)

        objFTP.CopyHere objItem,copyType
    End If

    If Err.Number <> 0 Then
        Wscript.Echo "Error: " & Err.Description
    End If

    'Wait for upload
    WScript.Sleep waitTime
    If objFSO.FileExists(strRename) Then
        objFSO.MoveFile strRename, strFile
    End If
End Sub

如你所见,我想将FTP上传切换为SFTP上传(因为目标服务器已更改为SFTP协议(protocol)。在这个函数中具体应该修改什么Sub FTPUpload(path) 这样做? 您有什么建议吗?

最佳答案

FileSystemObject 不支持 SFTP,Windows 中也不支持任何其他方式。

您必须使用第三方 SFTP 命令行客户端或 COM 对象。

因此没有简单的方法来更改现有脚本。您基本上必须从头开始。


Stack Overflow 上存在很多关于使用 VBScript 进行 SFTP 上传的现有问题。

例如,您可以使用 WinSCP SFTP client 。它同时具有 command-line scripting interfaceCOM object .

(我是 WinSCP 的作者)

关于file-upload - 如何将 FTP 上传 VBScript 更改为 SFTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48204370/

相关文章:

php - 调用未定义函数 exif_imagetype()

asp.net-mvc - 与其他字段一起将文件上传为表单的一部分

jsf - 将 dropzone 与 JSF 结合使用

vbscript - 如何检查 wscript/cscript 是否在 x64 主机操作系统上运行?

python - 使用 ftplib 将文件传输到 FTP 服务器后文件被损坏

通过 FTP 上传 PHP - ftp_put() 我不会打开到 x.x.x.x 的连接(仅到 y.y.y.y)

angularjs angular-file-upload 未知提供程序 : $uploadProvider error

function - VBScript BrowseForFile() 函数 - 如何指定文件类型?

shell - 使用 VBScript 启动应用程序

php - 使用PHP和FTP上传文件,我的错误在哪里?