Differences
This shows you the differences between the selected revisions of the page.
| 2012-02-18 | 2012-02-18 | ||
| few formating new lines in vbnet (martin) | jscript example (martin) | ||
| Line 210: | Line 210: | ||
| End Class | End Class | ||
| </code> | </code> | ||
| + | |||
| + | ==== [[jscript]] JScript (WSH) Example ==== | ||
| + | In this example the JScript script is embedded into WSF file, to allow [[library_com_wsh#enums|access to enumeration values]]. | ||
| + | |||
| + | <code javascript> | ||
| + | <job> | ||
| + | <reference object="WinSCP.Session"/> | ||
| + | <script language="JScript"> | ||
| + | |||
| + | // Setup session options | ||
| + | var sessionOptions = WScript.CreateObject("WinSCP.SessionOptions"); | ||
| + | sessionOptions.Protocol = Protocol_Sftp; | ||
| + | sessionOptions.HostName = "example.com"; | ||
| + | sessionOptions.UserName = "user"; | ||
| + | sessionOptions.Password = "mypassword"; | ||
| + | sessionOptions.SshHostKey = "ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"; | ||
| + | |||
| + | var session = WScript.CreateObject("WinSCP.Session"); | ||
| + | |||
| + | // Connect | ||
| + | session.Open(sessionOptions); | ||
| + | |||
| + | var today = new Date(); | ||
| + | var stamp = today.getFullYear() + (today.getMonth() + 1 < 10 ? "0" : "") + (today.getMonth() + 1) + (today.getDate() < 10 ? "0" : "") + today.getDate(); | ||
| + | var fileName = "export_" + stamp + ".txt"; | ||
| + | var remotePath = "/home/user/sysbatch/" + fileName; | ||
| + | var localPath = "d:\\backup\\" + fileName; | ||
| + | |||
| + | var fs = WScript.CreateObject("Scripting.FileSystemObject"); | ||
| + | |||
| + | // Manual "remote to local" synchronization. | ||
| + | |||
| + | // You can achieve the same using: | ||
| + | // var transferOptions = WScript.CreateObject("WinSCP.TransferOptions"); | ||
| + | // transferOptions.IncludeMask = fileName; | ||
| + | // session.SynchronizeDirectories( | ||
| + | // SynchronizationMode_Local, localPath, remotePath, false, false, SynchronizationCriteria_Time, | ||
| + | // transferOptions).Check(); | ||
| + | if (session.FileExists(remotePath)) | ||
| + | { | ||
| + | var download; | ||
| + | if (!fs.FileExists(localPath)) | ||
| + | { | ||
| + | WScript.Echo("File " + remotePath + " exists, local backup " + localPath + " does not"); | ||
| + | download = true; | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | var remoteWriteTime = new Date(session.GetFileInfo(remotePath).LastWriteTime); | ||
| + | var localWriteTime = fs.GetFile(localPath).DateLastModified; | ||
| + | |||
| + | if (remoteWriteTime > localWriteTime) | ||
| + | { | ||
| + | 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; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | if (download) | ||
| + | { | ||
| + | // Download the file and throw on any error | ||
| + | session.GetFiles(remotePath, localPath).Check(); | ||
| + | |||
| + | WScript.Echo("Download to backup done."); | ||
| + | } | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | WScript.Echo("File " + remotePath + " does not exist yet"); | ||
| + | } | ||
| + | |||
| + | </script> | ||
| + | </job> | ||
| + | </code> | ||
| + | |||