這是我的第一篇文章,請原諒我的無知。我正在使用vbscript壓縮特定文件夾中的所有.csv類型文件。經過一些谷歌搜索後,我找到了一個可行的vbscript來做到這一點,並啓用了計劃任務來自動執行此操作。SFTP傳輸文件並將文件移動到文件夾
接下來我需要做的是通過sftp傳輸zip文件,然後將該zip文件「移動」到另一個文件夾中。我相信前者可以通過命令行使用pscp.exe來實現,但是有人可以告訴我如何執行後者?
基本上壓縮將每天完成兩次,因此它將具有類似於yyyymmdd0900.zip(用於上午9點計劃)和yyyymmdd1800.zip(用於下午6點計劃)的時間戳。轉移後,我想將生成的zip文件移動(不復制)到另一個文件夾中。
任何指針將不勝感激。謝謝大家。
編輯:這裏是一些基於一些谷歌搜索一起打耳光的代碼。它做我想要它做的事。請原諒「粘貼」,因爲我無法弄清楚如何正確格式化。目前,它在複製後運行bat文件,但我只注意到我需要發送(使用PuTTY Secure Copy)「最新」zip文件,然後將其移至「已完成」文件夾。有人可以告訴我如何做到這一點?
荏苒文件和壓縮文件
重命名錯誤繼續下一步
strFilepath = 「C:\文件」
strDestination =「C:\文件\完成\ 「
strExtension =」csv「
strY耳=年(現在)
strMonth =右( 「0」 &月(現在),2)
strDay =右( 「0」 &日(現在),2)
strHour =右( 「0」 &小時(現在),2)
strMinute =右( 「0」 &分鐘(現在),2)
strZip = strFilepath & 「\」 & strYear & strMonth & strDay & strHour & strMinute & 「的.zip」
設置objFSO =的CreateObject( 「Scripting.FileSystemObject的」)
集objFolder = objFSO.GetFolder(strFilepath)
對於每個OBJFILE在objFolder 。文件
strFileExt = objFSO.GetExtensionName(objFile.Path)
If LCase(strFileExt) = LCase(strExtension) Then
ZipFile objFile.Path, strZip
End If
接着
子的ZipFile(strFileToZip,strArchive)
設置objFSO =的CreateObject( 「Scripting.FileSystemObject的」)
If Not objFSO.FileExists(strArchive) Then
Set objTxt = objFSO.CreateTextFile(strArchive)
objTxt.Write "PK" & Chr(5) & Chr(6) & String(18, Chr(0))
objTxt.Close
End If
Set objApp = CreateObject("Shell.Application")
intCount = objApp.NameSpace(strArchive).Items.Count + 1
objApp.NameSpace(strArchive).CopyHere strFileToZip
Do
WScript.Sleep 200
set objNameSpace = objApp.NameSpace(strArchive)
If Not objNameSpace is nothing Then
If objNameSpace.Items.Count = intCount Then
Exit Do
End If
End If
Loop
結束子
將文件移動到其他文件夾然後運行一個批處理文件來secury拷貝文件到FTP位置
「瓦爾
昏暗objFSO,objFileCopy,objFileDelete,圓點,文件,文件
昏暗strDestination,文件夾,子文件夾,fileCount ,strFilePath
「字符串
strDestination = 「C:\文件\完成\」
strFilePath = 「C:\文件」
set objFSO = CreateObject("Scripting.fileSystemObject")
set folder = objFSO.getFolder(strFilePath)
對於每個文件在folder.files
集objFileCopy = objFSO.GetFile(文件)
If objFSO.GetExtensionName(file) = "zip" Then
objFSO.MoveFile objFileCopy.Path, strDestination
End If
接着
昏暗殼設置shell = createobject(「wscript.shell」)
Shell.run 「C:\ testsend.bat」
設置SHELL =什麼
感謝您的回覆。對不起,我應該明確指出,轉移是一個遠程位置,而我在本地對該文件所在的盒子說的「移動」。我也想在執行zip之後自動執行此操作,然後讓sftp從文件所在的位置傳輸它。希望我有所幫助。 – molecule 2010-06-08 03:41:38
SFTP根本沒有工作目錄的概念 - 根據標準,所有路徑必須是絕對路徑。這是客戶端軟件,模擬當前目錄概念。 – 2010-06-08 11:04:43
@Eugene,很好的說明。我會更新答案。謝謝。 – 2010-06-08 12:59:33