Differences
This shows you the differences between the selected revisions of the page.
| 2016-03-07 | 2016-03-07 | ||
| simplifying JScript example (martin) | simplifying VBScript example (martin) | ||
| Line 288: | Line 288: | ||
| session.Open sessionOptions | session.Open sessionOptions | ||
| - | Dim today, stamp | + | ' Download files |
| - | today = Date | + | Dim transferOptions |
| - | stamp = Year(today) | + | Set transferOptions = WScript.CreateObject("WinSCP.TransferOptions") |
| - | If Month(today) < 10 Then | + | transferOptions.TransferMode = TransferMode_Binary |
| - | stamp = stamp & "0" | + | |
| - | End If | + | Dim transferResult |
| - | stamp = stamp & Month(today) | + | Set transferResult = session.GetFiles("/home/user/*", "d:\toupload\", False, transferOptions) |
| - | if Day(today) < 10 Then | + | |
| - | stamp = stamp & "0" | + | ' Throw on any error |
| - | End If | + | transferResult.Check |
| - | stamp = stamp & Day(today) | + | |
| - | + | ' Print results | |
| - | Dim fileName, remotePath, localPath | + | Dim transfer |
| - | fileName = "export_" & stamp & ".txt" | + | For Each transfer In transferResult.Transfers |
| - | remotePath = "/home/user/sysbatch/" & fileName | + | WScript.Echo "Download of " & transfer.FileName & " succeeded" |
| - | localPath = "d:\backup\" & fileName | + | Next |
| - | + | ||
| - | Dim fs | + | |
| - | Set fs = WScript.CreateObject("Scripting.FileSystemObject") | + | |
| - | + | ||
| - | ' Manual "remote to local" synchronization. | + | |
| - | + | ||
| - | ' You can achieve the same using: | + | |
| - | ' Dim transferOptions | + | |
| - | ' Set transferOptions = WScript.CreateObject("WinSCP.TransferOptions") | + | |
| - | ' transferOptions.FileMask = fileName | + | |
| - | ' session.SynchronizeDirectories( _ | + | |
| - | ' SynchronizationMode_Local, localPath, remotePath, false, false, SynchronizationCriteria_Time, _ | + | |
| - | ' transferOptions).Check | + | |
| - | + | ||
| - | Dim download, remoteWriteTime, localWriteTime | + | |
| - | + | ||
| - | If session.FileExists(remotePath) Then | + | |
| - | If Not fs.FileExists(localPath) Then | + | |
| - | WScript.Echo "File " & remotePath & " exists, local backup " & localPath & " does not" | + | |
| - | download = True | + | |
| - | Else | + | |
| - | remoteWriteTime = CDate(session.GetFileInfo(remotePath).LastWriteTime) | + | |
| - | localWriteTime = fs.GetFile(localPath).DateLastModified | + | |
| - | + | ||
| - | If remoteWriteTime > localWriteTime Then | + | |
| - | WScript.Echo _ | + | |
| - | ················"File " & remotePath & " as well as local backup " & localPath & " exist, " & _ | + | |
| - | ················"but remote file is newer (" & remoteWriteTime & ") than local backup (" & localWriteTime & ")" | + | |
| - | download = True | + | |
| - | Else | + | |
| - | WScript.Echo _ | + | |
| - | ················"File " & remotePath & " as well as local backup " & localPath & " exist, " & _ | + | |
| - | ················"but remote file is not newer (" & remoteWriteTime & ") than " & _ | + | |
| - | "local backup local backup (" & localWriteTime & ")" | + | |
| - | download = False | + | |
| - | End If | + | |
| - | End If | + | |
| - | + | ||
| - | If download Then | + | |
| - | ········' Download the file and throw on any error | + | |
| - | ········session.GetFiles(remotePath, localPath).Check() | + | |
| - | + | ||
| - | WScript.Echo "Download to backup done." | + | |
| - | End If | + | |
| - | Else | + | |
| - | WScript.Echo "File " & remotePath & " does not exist yet" | + | |
| - | End If | + | |
| ' Disconnect, clean up | ' Disconnect, clean up | ||