博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VBScript操作SFTP
阅读量:4627 次
发布时间:2019-06-09

本文共 4616 字,大约阅读时间需要 15 分钟。

示例代码主要通过VBScript实现对SFTP的上传下载功能

' Return yyyyMM base on current dateFunction FormatCurrentDate()    CurrentDate = Formatdatetime(Date,2)    FormatCurrentDate = right("0000" & year(CurrentDate),4) & right("00" & month(CurrentDate),2)End Function' Upload and Backup files in given folderSub UploadAndBackupFiles(MySite,fs,outFile,localFolder,bakLocalFolder)    Dim oFolder,oFiles, fileName    set oFolder = fs.GetFolder(localFolder)    set oFiles = oFolder.Files     for each file in oFiles        fileName = file.Name                  ' Check bak folder, if not exist, then create it        If(Not(MySite.LocalExists(bakLocalFolder))) Then            MySite.CreateLocalFolder bakLocalFolder        End If                If(MySite.LocalExists(localFolder & fileName)) Then            ' Upload file            If(Not(MySite.RemoteExists("/inbound/" & fileName))) Then                outFile.WriteLine FormatDateTime(Now()) & ": [UPLOAD] " & fileName                MySite.Upload localFolder & fileName, "/inbound/" & fileName            End If            ' Backup file to bak folder            outFile.WriteLine FormatDateTime(Now()) & ": [BACKUP] " & fileName            MySite.LocalRename localFolder & fileName, bakLocalFolder & fileName        End If    NextEnd Sub' Download files from remote SFTPSub DownloadFilesFromSFTP(MySite,outFile,localFolder,remoteFolder)    Dim strFileList,strFileName,i,j    MySite.LocalFolder = localFolder    MySite.RemoteFolder = remoteFolder    If CBool(MySite.RemoteExists(MySite.RemoteFolder)) Then         If CBool(MySite.LocalExists(MySite.LocalFolder)) Then             ' 获取远程下载目录的文件列表,以"|||"作为分隔符             MySite.GetList "", "", "%NAME|||"             strFileList = MySite.GetResult             If Len(strFileList) <> 0 Then                 i = 1                Do While true                    j = InStr(i, strFileList, "|||")                    If j <= 0 Then                        Exit Do                    End If                    strFileName = Mid(strFileList, i, j - i)                    outFile.WriteLine FormatDateTime(Now()) & ": [DOWNLOAD] " & strFileName                    MySite.Download strFileName                    outFile.WriteLine FormatDateTime(Now()) & ": [*REMOVE*] " & strFileName                    MySite.RemoteRemove strFileName                    '加5,因为分隔符"|||"的长度为3个字符,另外还有回车和换行2个字符                    i = j + 5                 Loop            Else                outFile.WriteLine "Message! There is no file in remote sftp"            End If        Else            outFile.WriteLine "Error! Local directory doesn't existing"        End If    Else        outFile.WriteLine "Error! Remote directory doesn't existing"    End If      End SubDim MySite, fos, outFileOn Error Resume NextSet fos = WScript.CreateObject("scripting.filesystemobject")Set outFile = fos.OpenTextFile("\\10.7.11.103\cusdec_edi\Schedule\VBS_CUSDEC_Log.txt", 8, True)outFile.WriteLine "=========================================================================================="outFile.WriteLine "Start Time: " & FormatDateTime(Now())' Create TEConnection objectSet MySite = CreateObject("CuteFTPPro.TEConnection")' Initialize remote server host name, protocol, port, etc.MySite.Host = "xx.xx.xx.xx"MySite.Protocol = "SFTP"MySite.Port = 22MySite.Retries = 30MySite.Delay = 30MySite.MaxConnections = 2MySite.TransferType = "AUTO"MySite.DataChannel = "DEFAULT"MySite.AutoRename = "OFF"' WARNING!!! SENSITIVE DATA: user name and password.MySite.Login = "user"MySite.Password = "pwd"MySite.SocksInfo = ""MySite.ProxyInfo = ""' Connect to remote server'MySite.DisconnectMySite.ConnectIf Cbool(MySite.IsConnected) Then    outFile.WriteLine "Connected to server: " & MySite.HostEnd IfIf Err.Number > 0 Then    outFile.WriteLine "Error: " & Err.Description    Err.ClearEnd IfCall UploadAndBackupFiles(MySite,fos,outFile,"\\10.7.11.103\cusdec_edi\ZB1\","\\10.7.11.103\cusdec_edi\Archive\ZB1\" & FormatCurrentDate() & "\")Call UploadAndBackupFiles(MySite,fos,outFile,"\\10.7.11.103\cusdec_edi\ZB2\","\\10.7.11.103\cusdec_edi\Archive\ZB2\" & FormatCurrentDate() & "\")Call DownloadFilesFromSFTP(MySite,outFile,"\\10.7.11.103\cusdec_edi\ZBack","/outbound/")' CloseoutFile.WriteLine "End Time: " & FormatDateTime(Now())outFile.WriteLine "==========================================================================================" & vbCrLf & vbCrLfoutFile.CloseSet fos = NothingMySite.Disconnect'MySite.CloseWScript.Quit

最后建一计划任务,每隔30分钟轮询执行

schtasks /create /sc minute /mo 30 /tn "CUSDECEDI" /tr E:\CUSDEC\CUSDEC.vbs /ru System

 

转载于:https://www.cnblogs.com/panchunting/p/VBScript_SFTP.html

你可能感兴趣的文章
Navicat工具多表查询
查看>>
第四章 读书笔记
查看>>
我不为人人,人人不为我
查看>>
iOS网络编程(三) 异步加载及缓存图片---->SDWebImage
查看>>
Qt qml 模拟iphone slide to unlock 的聚光动画文字效果
查看>>
c++11 std::move() 的使用
查看>>
HDU 4607 Park Visit (DP最长链)
查看>>
实例学架构设计之源起复杂度
查看>>
leetcode- Rotate Array 旋转数组
查看>>
vue vuex
查看>>
POJ 2234 Matches Game 博弈论水题 Nim模型
查看>>
BBC-unit6 session4
查看>>
JS获取节点的兄弟,父级,子级元素的方法(js获取子级获取到换行与空格元素-FF)...
查看>>
ini文件操作
查看>>
Win7 本地打印后台处理程序服务没有运 怎么办
查看>>
php 中array_multisort排序,类似于对数据库中的记录依次按多列进行排序
查看>>
加密算法和MD5等散列算法的区别
查看>>
【python】函数返回值
查看>>
Java基础50题test9—求完数
查看>>
【记忆法】心智绘图
查看>>