Você pode usar o WinSCP como cliente FTP com script .
A funcionalidade de script de WinSCP
não suporta sequências de controle, manipulação de caminhos de arquivos, etc. Se você precisar delas, você precisa chamar o script WinSCP de um script de invólucro implementado em outra linguagem de script (como VBscript ). Qualquer idioma que suporte COM / ActiveX pode ser usado.
Exemplo do site do WinSCP:
<job>
<reference object="WinSCP.Session" />
<script language="VBScript">
Option Explicit
' Setup session options
Dim sessionOptions
Set sessionOptions = WScript.CreateObject("WinSCP.SessionOptions")
With sessionOptions
.Protocol = Protocol_Sftp
.HostName = "example.com"
.UserName = "user"
.Password = "mypassword"
.SshHostKeyFingerprint = "ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
End With
Dim session
Set session = WScript.CreateObject("WinSCP.Session")
' Connect
session.Open sessionOptions
' Upload files
Dim transferOptions
Set transferOptions = WScript.CreateObject("WinSCP.TransferOptions")
transferOptions.TransferMode = TransferMode_Binary
Dim transferResult
Set transferResult = session.PutFiles("d:\toupload\*", "/home/user/", False, transferOptions)
' Throw on any error
transferResult.Check
' Print results
Dim transfer
For Each transfer In transferResult.Transfers
WScript.Echo "Upload of " & transfer.FileName & " succeeded"
Next
' Disconnect, clean up
session.Dispose
</script>
</job>
Modifique esse script para cuidar de suas necessidades específicas / dinâmicas.