CuteFTP上傳指令碼(VBS)

來源:互聯網
上載者:User

Option Explicit    ' 強制顯式聲明變數。

'********************************************************************
'* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-
'* CuteFTP Pro Script
'* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-
'*
'* 作者:張博
'*
'CuteFTP指令碼(VBScript),上傳到多個伺服器
'必須首先安裝CuteFTP軟體的較新版本(早期版本存在嚴重BUG,6.0版沒有問題)
'運行指令碼時可能需要首先關閉CuteFTP視窗(某些版本有此問題)
'需要配置的內容:
'變數appname 應用的名字,指令碼執行過程中會顯示
'變數LocalDir 用作中轉的本地絕對路徑,若不存在會自動建立
'數組RemoteInfo 目標伺服器的資訊,包括網域名稱(IP)、使用者、口令、基本路徑
'對象MySite MySite2 的各項屬性,串連源FTP和目標FTP的CuteFTP對象,需要配置網站網域名稱或IP、使用者名稱、口令
'數組JobInfo 要傳輸的檔案的相對路徑和檔案名稱
'   相對路徑可以為""或多級目錄"dir1/dir2"
'   檔案名稱可以帶萬用字元,帶萬用字元可能會連子目錄一起操作,UNIX機要區分大小寫
'執行時第一次提示任務名稱,第二次提示要執行的任務(此時可以取消任務),確定後實際執行任務,最後提示任務完成

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'通用函數
'改變本地工作路徑
Function lChangeDir(varTE,vardir)
 If ""=vardir Then Exit Function
    If (Not (varTE.LocalExists(vardir))) Then
        varTE.CreateLocalFolder vardir
    End If
    varTE.LocalFolder = vardir
End Function
'改變遠程工作路徑
Function rChangeDir(varTE,vardir)
 Dim b
 If ""=vardir Then Exit Function
    b = varTE.RemoteExists(vardir)
    If (Not Cbool(b)) Then
        varTE.CreateRemoteFolder vardir
    End If
    varTE.RemoteFolder = vardir
End Function
'同時改變本地和遠程工作路徑
Function lrChangeDir(varTE,lbasedir,rbasedir,lrdir)
 lChangeDir varTE , lbasedir
 lChangeDir varTE , lrdir
 'varTE.RemoteCommand "CD"
 rChangeDir varTE , rbasedir
 rChangeDir varTE , lrdir
End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'屬於特定應用的函數
Function AddRemoteInfo(infoarray,host,login,pass,basedir)
 if infoarray(0,0) >= UBound(infoarray) then
  MsgBox "AddRemoteInfo : array fulled"
  Quit 1
 End If
 infoarray(0,0) = infoarray(0,0) + 1
 
 infoarray(infoarray(0,0),0)=host
 infoarray(infoarray(0,0),1)=login
 infoarray(infoarray(0,0),2)=pass
 infoarray(infoarray(0,0),3)=basedir
End Function
Function AddJobInfo(infoarray,reldir,file)
 if infoarray(0,0) >= UBound(infoarray) then
  MsgBox "AddRemoteInfo : array fulled"
  Quit 1
 End If
 infoarray(0,0) = infoarray(0,0) + 1
 
 infoarray(infoarray(0,0),0)=reldir
 infoarray(infoarray(0,0),1)=file
End Function
Function InitTEObj(teobj,infoarray,i)
 teobj.Protocol = "FTP"
    teobj.Host = infoarray(i,0)
    teobj.Login = infoarray(i,1)
    teobj.Password = infoarray(i,2)
    teobj.UseProxy = "OFF"
    teobj.MaxConnections = 5
    teobj.TransferType = "ASCII"
End Function

 Dim appname '應用程式名稱
 Dim report '報告
 Dim i,j '通用迴圈變數
 appname = "省集中 檔案發布"
 report = ""
 MsgBox "CuteFTP pro VBS 指令碼 啟動 - " & appname

    Dim MySite 'FTP網站
    Dim LocalDir '本地基本路徑 必須是絕對路徑
    '建立CuteFtp 對象
    Set MySite = CreateObject("CuteFTPPro.TEConnection")
 
 '下標0用於記錄有效資料的個數
 Dim RemoteInfo(100,3) '數組下標基於0並且定義的是最大下標,因此可用的為(0-100,0-3)
      '第二維依次為主機名稱、登入名稱、口令、基礎路徑,不使用第一維的0
 Dim JobInfo(100,1) '不使用第一維的0,第二維依次為相對路徑、檔案名稱
 RemoteInfo(0,0)=0
 JobInfo(0,0)=0
 
 '本地基本路徑
 LocalDir="本地根目錄" '必須是絕對路徑
 
 '網站資訊,只能添加一個遠端站台,添加多個未經測試
 AddRemoteInfo RemoteInfo,"ip地址","使用者名稱","密碼","遠程根目錄"

 

 '任務資訊
 'AddJobInfo JobInfo,"相對路徑","檔案名稱,可帶萬用字元,遞迴的"
'AddJobInfo JobInfo,"相對路徑","檔案名稱,可帶萬用字元"
'AddJobInfo JobInfo,"相對路徑","檔案名稱,可帶萬用字元"
'AddJobInfo JobInfo,"相對路徑","檔案名稱,可帶萬用字元"

 report = "即將執行下列任務:" & Chr(13) & Chr(10)
 For i=1 To JobInfo(0,0)
  report = report & Chr(13) & Chr(10) & JobInfo(i,0) & " - " & JobInfo(i,1)
 Next
 report = report & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "本地路徑: " & Chr(13) & Chr(10) & LocalDir
 report = report & Chr(13) & Chr(10) & "目的: "
 For i=1 To RemoteInfo(0,0)
  report = report & Chr(13) & Chr(10) & RemoteInfo(i,0) & ":" & RemoteInfo(i,3)
 Next
 If vbCancel = MsgBox(report,vbOKCancel) Then
  Quit 1
 End If

 report = ""
 For i=1 To RemoteInfo(0,0)
  InitTEObj MySite,RemoteInfo,i
  '串連到網站
  MySite.Connect
  If (Not Cbool(MySite.IsConnected)) Then 
   MsgBox "Could not connect to: " & MySite.Host & " Aborting!" &MySite.ErrorDescription
   Quit(1)
  End If
  
  For j=1 To JobInfo(0,0)
   lrChangeDir MySite,LocalDir,RemoteInfo(i,3),JobInfo(j,0)
   MySite.Upload JobInfo(j,1)
  Next
  '關閉串連
     MySite.Close
     report = report & Chr(13) & Chr(10) & RemoteInfo(i,0)
 Next
 
 MsgBox "CuteFTP pro VBS 指令碼 結束 - " & appname & Chr(13) & Chr(10) & report
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.