Questa è la reference ufficiale:
http://msdn.microsoft.com/en-us/library ... tt(v=vs.85).aspx
In allegato trovi un'archivio con il lavoro già fatto ( ho trovato spunto da uno script reperito in rete
)
Ti spiego brevemente un paio di cose:
1) c'è una cartella scambio che puoi posizionare in C
2) all'interno di scambio c'è il file connect.vbs che esegue le operazione e una cartella commands dove vengono salvati i file con le istruzioni FTP
3) devi moficare il file connect.vbs inserendo url dell'ftp, username e password nelle apposite variabili
4) esegui una prima volta ( doppio click ) il file connect.vbs a mò di setup
5) d'ora in poi ad ogni esecuzione verrà scaricato nella cartella scambio il file con nome del tipo aaaa-m-g.csv ( aaaa-mm-gg non sono riuscito )dal server ftp
Ovviamente puoi ottimizzarlo e cambiarlo a tuo piacimento ma di sicuro è un buon punto di inizio..
Come non detto gli allegati non sono più supportati!!
Creati tu le cartelle e il file come ho detto sopra ovvero:
C:\scambio
C:\scambio\commands
C:\scambio\connect.vbs
Per il file copia incolla questo codice:
- Codice: Seleziona tutto
Option Explicit
Dim objFSOlist, objFSOget, objFSOdel, objMyFile, objShell, strFTPScriptFileName
Dim strLocalFolderName, strFTPServerName, strLoginID, strFTPServerDir
Dim strPassword, strFTPServerFolder
Dim filesys, filetxt, nomeFile
Const ForReading = 1, ForWriting = 2, ForAppending = 8
' Cartella in cui vengono scaricati i file
strLocalFolderName = "c:\scambio\"
' Server FTP
strFTPServerName = "xxx"
' Username
strLoginID = "xxx"
' Password
strPassword = "xxx"
' Carella remota ( nell'FTP )
strFTPServerFolder = "/"
' Creazione del file con le istruzioni FTP da esguire.
strFTPScriptFileName = strLocalFolderName & "commands\FTPLIST.txt"
Set objFSOlist = CreateObject("Scripting.FileSystemObject")
If (objFSOlist.FileExists(strFTPScriptFileName)) Then
objFSOlist.DeleteFile(strFTPScriptFileName)
End If
Set objMyFile = objFSOlist.CreateTextFile(strFTPScriptFileName, True)
' Scriviamo le varie istruzioni
objMyFile.WriteLine ("open " & strFTPServerName)
objMyFile.WriteLine (strLoginID)
objMyFile.WriteLine (strPassword)
objMyFile.WriteLine ("ls -1R " & strLocalFolderName & "commands\listafile.txt")
objMyFile.WriteLine ("quit")
objMyFile.Close
Set objFSOlist = Nothing
Set objMyFile = Nothing
' Esecuzione dello script con i comandi FTP
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run ("ftp -s:" & chr(34) & strFTPScriptFileName & chr(34))
Set objShell = Nothing
' Apriamo il file di testo con la lista dei file
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.OpenTextFile(strLocalFolderName & "commands\listafile.txt", ForReading, True)
' scorriamo tutte le righe
Do Until filetxt.AtEndOfStream
nomeFile = filetxt.ReadLine
if nomeFile = cstr( year(now()) & "-" & month(now()) & "-" & day(now()) & ".csv" ) then
strFTPScriptFileName = strLocalFolderName & "commands\FTPGET.txt"
Set objFSOget = CreateObject("Scripting.FileSystemObject")
If (objFSOget.FileExists(strFTPScriptFileName)) Then
objFSOget.DeleteFile(strFTPScriptFileName)
End If
Set objMyFile = objFSOget.CreateTextFile(strFTPScriptFileName, True)
' Scriviamo le varie istruzioni per il get
objMyFile.WriteLine ("open " & strFTPServerName)
objMyFile.WriteLine (strLoginID)
objMyFile.WriteLine (strPassword)
objMyFile.WriteLine ("get " & nomeFile)
objMyFile.WriteLine ("quit")
objMyFile.Close
Set objFSOget = Nothing
Set objMyFile = Nothing
' Esecuzione dello script con i comandi FTP
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run ("ftp -s:" & chr(34) & strFTPScriptFileName & chr(34))
Set objShell = Nothing
end if
Loop
filetxt.Close
set filesys = nothing
se hai bisogno chiedi..