軟件:SCADA DIAview硬件:電腦劇本說話:VBScript
搭建局域網或本機的FTP 辦事器 Win10
a) 進入節制面板==>程序和功能【圖1】
b)? 選擇“啟用或封閉Windows功能”==>對“Internet Information Services ” 下面臨應的選項大打√==>點擊“確定”安裝當作功==>重啟電腦,然后進行 c 步調。【圖2】
c)? 我的電腦==>右擊選擇“辦理”【圖3】
d)? 網站==>右擊添加“FTP站點”【圖4】【圖5】
e) 點擊下一步,進入 FTP 綁心猿意馬IP 和端標語==》點擊下一步,進入“身份證和授權信息”==》點擊完當作,進入 f 步調【圖6】【圖7】
f) 進行拜候 ftp 辦事地址 ,在瀏覽器網址中輸入ftp地點辦事器的地址如:“ftp://192.168.1.65”,進入登錄界面。輸入辦事器的登錄賬號和暗碼即可。【圖8】【圖9】
建立組態DIAView工程來實現FTP的上傳于下載
建立窗口如下:
按鈕“上傳”==>事務“左鍵按下”
'FTP IP地址如:192.168.1.65 或 ftp.wwww.baidu.com
FTP_HOST=Trim(txtftpip.Text)
'FTP 登錄用戶名
FTP_USER=Trim(txtftpuser.Text)
'FTP 登錄用戶暗碼
FTP_PWD=Trim(txtftppwd.Text)
'被上傳的文件目次
LOCAL_FOLDER =Trim(txtlocalpath.Text)
'被上傳的文件名稱 多個用英文逗號離隔;*好暗示全數文件
strFileName =Trim(txtlocalfile.Text)
strFTPFolder=Trim(txtftpfolder.Text)
'strNewFileName=Sys.Year&Sys.Month&Sys.Day&Sys.Hour&Sys.Minute&Sys.Second&Sys.Millisecond
?
'Application
Set objShell = Createobject("Shell.Application")
'FileSystemobject
Set objFs = Createobject("Scripting.FileSystemobject")
?
strFtpUrl = "ftp://" & FTP_USER & ":" & FTP_PWD & "@" & FTP_HOST & "/" & strFTPFolder
Set obj2=objShell.NameSpace(LOCAL_FOLDER)
Set objFolderItems = obj2.Items()
?
For i = 0 To objFolderItems.Count - 1
??? Set ofitem = objFolderItems.Item(i)
??? 'filePath=ofitem.path
??? 'filePathArray=Split(filePath,".",-1,1)
??? 'fileExt=filePathArray(UBound(filePathArray))
??? 'strFtpUrl=strFtpUrl&"/"&strNewFileName&"."&fileExt
??? '暗示上傳全數
??? If strFileName="*" then
??????? Set FD = objShell.NameSpace(strFtpUrl)
??????? FD.CopyHere ofitem,4096 '若是存在并籠蓋
??? End If
??? If strFileName<>"*"? And? strFileName = ofitem.Name Then
??????? 'strFtpUrl=strFtpUrl&strNewFileName&
??????? Set FD = objShell.NameSpace(strFtpUrl)
??????? FD.CopyHere ofitem,4096 '若是存在并籠蓋
??? End If
?? ?
Next
?
MsgBox "上傳當作功!"
按鈕“下載”==>事務“左鍵按下”
'FTP IP地址如:192.168.1.65 或 ftp.wwww.baidu.com
str_server=Trim(txtftpip.Text)
'FTP 登錄用戶名
str_user=Trim(txtftpuser.Text)
'FTP 登錄用戶暗碼
str_password=Trim(txtftppwd.Text)
'被上傳的文件目次
str_localDir =Trim(txtlocalpath0.Text)
'被上傳的文件名稱 多個用英文逗號離隔;*好暗示全數文件
str_remoteFiles =Trim(txtlocalfile0.Text)
'FTP下載目次
str_remoteDir="\"&Trim(txtftpfolder0.Text)
?
ftp_configFile = "listfiles.ini"
Set ws = CreateObject("WScript.Shell")
Set fs = CreateObject("Scripting.FileSystemObject")
?
'處置路徑中的空格
str_remoteDir = Trim(str_remoteDir)
If InStr(str_remoteDir," ")>0 Then
??? If Left(str_remoteDir,1)<> """" And Right(str_remoteDir,1) <> """" Then
??????? str_remoteDir = """" &str_remoteDir& """"
??? End If
End If
?
'設置工作路徑
originalWorkingDirectory = ws.CurrentDirectory
ws.CurrentDirectory = str_localDir
?
'生當作ftp號令
ftpScript_str = ""
ftpScript_str = ftpScript_str & "USER " & str_user & vbCrLf
ftpScript_str = ftpScript_str & str_password & vbCrLf
ftpScript_str = ftpScript_str & "cd " & str_remoteDir & vbCrLf
ftpScript_str = ftpScript_str & "binary" & vbCrLf
ftpScript_str = ftpScript_str & "prompt off" & vbCrLf
?
remoteFiles_obj = Split(str_remoteFiles,",")?? ?
For Each remoteFile_str In remoteFiles_obj
??? 'remoteFile_str = Left(remoteFile_str,Len(remoteFile_str)-1)??? '去除回車符(為什么會有換行符?)
??? If InStr(remoteFile_str, " ")>0 Then
??????? remoteFile_str = """" & remoteFile_str & """"
??? End If
??? ftpScript_str = ftpScript_str & "get " & remoteFile_str & vbCrLf?? ?
Next
?
ftpScript_str = ftpScript_str & "bye" & vbCrLf & "quit" & vbCrLf & "quit" & vbCrLf
?
'建立姑且文件
tempDir_str = ws.ExpandEnvironmentStrings("%TEMP%")
scriptFilePath_str = tempDir_str& "\" &fs.GetTempName
ftpResultPath_str = tempDir_str& "\" &fs.GetTempName
?
'姑且ftp劇本文件
Set scriptFile_obj = fs.OpenTextFile(scriptFilePath_str,2,True)
scriptFile_obj.Write(ftpScript_str)
scriptFile_obj.Close
?
'執行ftp劇本
'logFileObject.WriteLine Time & "? Downloading files from ftp..."
ws.Run "%comspec% /c FTP -n -s:" &""""&scriptFilePath_str&""""& " " &str_server& " > " &ftpResultPath_str,0,True
'WScript.Sleep 1000
?
'姑且ftp成果文件
Set resultFile_obj = fs.OpenTextFile(ftpResultPath_str,1)
successDownloadCount_int = 0
failToDownloadCount_int = 0
'WScript.Echo scriptFilePath_str & "? " &ftpResultPath_str
'WScript.Echo ftpScript_str
?
Do Until resultFile_obj.AtEndOfStream
currLine_str = resultFile_obj.ReadLine
'WScript.Echo currLine_str
?
'?????? If InStr(currLine_str,"get ")>0 And InStr(currLine_str,"forme")>0 Then
If InStr(currLine_str,"get ")>0 Then
??? currLine_str = Right(currLine_str,Len(currLine_str)-(InStr(currLine_str,"get ")+3))
??? nextLine_str = resultFile_obj.ReadLine
??? nextLine_str = resultFile_obj.ReadLine
??? nextLine_str = resultFile_obj.ReadLine
?? ?
??? If InStr(nextLine_str,"226 Transfer complete")>0 Then
??????? successDownloadCount_int = successDownloadCount_int + 1
??????? 'logFileObject.WriteLine Time & "? Finish downloading file(" &currLine_str& ")"
??? Else
??????? failToDownloadCount_int = failToDownloadCount_int + 1
??????? 'logFileObject.WriteLine Time & "? Error:Fail to download file(" &currLine_str& ")"
??? End If
End If
Loop
resultFile_obj.Close
?
'logFileObject.WriteLine Time & "? Complete(" &successDownloadCount_int& ")??? Failed(" &failToDownloadCount_int& ")"
'logFileObject.WriteBlankLines 1
?
MsgBox "下載完當作!"
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!