示例代码主要通过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. 转发npm发布包的过程

    老板,来个npm账号! 因为你的包是要放在npm上的,所以,没有npm的账号,根本什么活都干不了. 在npm上注册一个账号是很简单的,随便填一下用户名密码邮箱,然后人家就会发个邮件给你,然后就注册成功 ...

  3. 第二个spring冲刺第8天

    今天我们团队分别安排了不同的任务,分别是1人程序编写,1人检查bug,1人负责客户体验,还有我们的总负责人王俊凯同学负责各个部分的协调.今天程序有了新的调整,但是功能还是没有完全做出来,不过还在开发途 ...

  4. Java Socket 多线程聊天室

    本来这次作业我是想搞个图形界面的,然而现实情况是我把题意理解错了,于是乎失去了最初的兴致,还是把程序变成了功能正确但是“UI”不友好的console了,但是不管怎么样,前期的图形界面的开发还是很有收获 ...

  5. 插入排序的C、C++实现

    一.插入排序 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法--插入排序法,插入排序的基本操作就是将一个数据插入到 ...

  6. Linux 下安装nginx的总结 (之前写的有问题))

    1. 下载niginx的 tar包 下载路径 http://nginx.org/en/download.html 也可以直接使用命令下载 wget http://nginx.org/download/ ...

  7. python的logging日志模块

    1. 简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info mess ...

  8. Django时间时区问题(received a naive datetime while time zone support is active)

    在django1.4以后,存在两个概念 naive time 与 active time. 简单点讲,naive time就是不带时区的时间,Active time就是带时区的时间. 举例来说,使用d ...

  9. mysql账户添加远程访问

    我们要将root账户设置为远程可访问 mysql> show databases; +--------------------+ | Database | +------------------ ...

  10. 【bzoj1758】 Wc2010—重建计划

    http://www.lydsy.com/JudgeOnline/problem.php?id=1758 (题目链接) 题意 给出一棵树,每条边有边权,问选出一条长度为$[L,U]$的路径,使得路径上 ...