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

' Return yyyyMM base on current date
Function FormatCurrentDate()
CurrentDate = Formatdatetime(Date,)
FormatCurrentDate = right("" & year(CurrentDate),) & right("" & month(CurrentDate),)
End Function ' Upload and Backup files in given folder
Sub 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
Next
End Sub ' Download files from remote SFTP
Sub 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) <> Then
i =
Do While true
j = InStr(i, strFileList, "|||")
If j <= 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 +
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 Sub Dim MySite, fos, outFile On Error Resume Next Set fos = WScript.CreateObject("scripting.filesystemobject")
Set outFile = fos.OpenTextFile("\\10.7.11.103\cusdec_edi\Schedule\VBS_CUSDEC_Log.txt", , True) outFile.WriteLine "=========================================================================================="
outFile.WriteLine "Start Time: " & FormatDateTime(Now()) ' Create TEConnection object
Set MySite = CreateObject("CuteFTPPro.TEConnection") ' Initialize remote server host name, protocol, port, etc.
MySite.Host = "xx.xx.xx.xx"
MySite.Protocol = "SFTP"
MySite.Port =
MySite.Retries =
MySite.Delay =
MySite.MaxConnections =
MySite.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.Disconnect
MySite.Connect If Cbool(MySite.IsConnected) Then
outFile.WriteLine "Connected to server: " & MySite.Host
End If If Err.Number > Then
outFile.WriteLine "Error: " & Err.Description
Err.Clear
End If Call 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/") ' Close
outFile.WriteLine "End Time: " & FormatDateTime(Now())
outFile.WriteLine "==========================================================================================" & vbCrLf & vbCrLf
outFile.Close
Set fos = Nothing
MySite.Disconnect
'MySite.Close
WScript.Quit

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

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

VBScript操作SFTP的更多相关文章

  1. .net 操作sftp服务器

    因为项目的需要,整理了一段C#操作sftp的方法. 依赖的第三方类库名称为:SharpSSH 1.1.1.13. 代码如下: 1: using System; 2: using System.Coll ...

  2. c# 使用Renci.SshNet.dll操作SFTP总结

    1.操作类 /// <summary> /// SFTP操作类 /// </summary> public class SFTPHelper { #region 字段或属性 p ...

  3. Java操作SFTP

    import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.jcr ...

  4. vbs 之 excel 使用VBScript 操作excel

    打开excel及新建工作薄 '' 2. Method ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' 2.1 CreateO ...

  5. 关于FTP和SFTP的操作总结

    SFTP使用的三方类库是Renci.SshNet.DLL SFTP连接大部分网上使用IP地址形式的路径,而我本次使用的是网站形式的.类似sftp.XXX.com SFTP的操作也类似File文件的操作 ...

  6. Linux设置SFTP服务用户目录权限

    我们有时会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加.修改.删除操作,并且只能使用sftp登录服务器,不能用ssh操作.这些可以通过配置sftp服务实现. 提供sftp服务 ...

  7. SFTP数据迁移

    背景 服务器部署到aliyun上,之前sftp数据又是在系统盘上,由于现在数据量越来越大,导致系统盘无法满足现有要求,所以需要对sftp相关数据进行迁移至数据盘. 方案 方案一:原数据复制到新磁盘中, ...

  8. 如何使用sftp下载Linux服务器上的文件到本地

    下载Linux服务器上的文件到本地 Linux服务器上的操作 sftp xxxxx@jumper.xxxx.com 使用put命令进行文件上传,put app.log 本地操作 sftp xxxxx@ ...

  9. Python模块学习 - Paramiko

    简介 ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography). 有了Paramiko以后,我们就可以在Py ...

随机推荐

  1. 11.4 Daily Scrum

    今天依旧是学习阶段,大家继续学习安卓的一些相关内容,并尝试将要用到的数据的API应用到程序中去.   Today's tasks  Tomorrow's tasks 丁辛 餐厅列表json/xml数据 ...

  2. Daily Scrumming* 2015.12.8(Day 1)

    一.团队scrum meeting照片 二.今日总结 姓名 WorkItem ID 工作内容 签入链接以及备注说明  江昊 任务942 学习使用github,在github上建立组织并将所有队员纳入, ...

  3. Java中的基本数据据类型

    1.整数类型 类型 字节数 表示范围 byte 1 -128~127 short 2 -32768 ~ 32767 int 4 -2147483648~2147483647 long 8 -92233 ...

  4. redis 事务,持久化,日志,主从,VM

    redis目前对事务的支持比较简单,只能保证一个客户端连接发起事务中的命令可以连续执行,而中间不会插入其他客户端的命令. 1.事务 一般情况下,redis接收到一个客户端发送的命令,立刻执行并返回结果 ...

  5. php://input 和 $HTTP_ROW_POST_DATE

    前言: 年前又换了一家公司.毕业半年,加上之前的实习,第四家公司了.短短半年经历了很多,就这样度过了我的2018.毕业.实习.就业.创业.公司倒闭.频繁跳槽.开工作室净赔.年前自我感觉糟透了,一团糟, ...

  6. ibmv7000查看序列号

    ssh后 命令:lsenclosure 有以下数据 id status   type      managed IO_group_id IO_group_name product_MTM serial ...

  7. 【刷题】洛谷 P4320 道路相遇

    题目描述 在 H 国的小 w 决定到从城市 \(u\) 到城市 \(v\) 旅行,但是此时小 c 由于各种原因不在城市 \(u\),但是小 c 决定到在中途与小 w 相遇 由于 H 国道路的原因,小 ...

  8. 【刷题】BZOJ 3724 PA2014Final Krolestwo

    Description 你有一个无向连通图,边的总数为偶数. 设图中有k个奇点(度数为奇数的点),你需要把它们配成k/2个点对(显然k被2整除).对于每个点对(u,v),你需要用一条长度为偶数(假设每 ...

  9. 五、spring boot 1.5.4 集成 jpa+hibernate+jdbcTemplate

    1.pom添加依赖 <!-- spring data jpa,会注入tomcat jdbc pool/hibernate等 --> <dependency> <group ...

  10. 解题:SDOI 2014 重建

    题面 做这个这个题需要稍微深入理解一点矩阵树定理:套矩阵树定理得到的东西是有意义的,它是“所有生成树边权乘积之和”(因为度数矩阵是点的边权和,邻接矩阵是边权),即$\sum_{t}\prod_{e∈t ...