2012-02-17 38 views
3

創建目錄,我想創建FTP目錄,該目錄的名稱必須是我的計算機名,VBScript中,在FTP

這裏是我的代碼,

Dim FoldertoCreate, filesys, newfolder, Ob 
Set Ob = Wscript.CreateObject("Wscript.Network") 
FoldertoCreate = "ftp://user:[email protected]/url-path/" & ob.ComputerName 
Set filesys = CreateObject("Scripting.FileSystemObject") 
If Not filesys.FolderExists(FoldertoCreate) Then 
    Set newfolder = filesys.CreateFolder(FoldertoCreate) 
End If 

此代碼沒有按然而,「T工作時,我與任何本地目錄一樣d更換ftp://user:[email protected]/url-path:/,它的工作原理:S

如何讓它爲我的FTP工作太

+0

Scripting.FileSystemObject用於文件系統,它不支持FTP。 – 2012-02-17 17:31:34

+0

那我該用什麼?你能告訴我嗎? – 2012-02-17 18:55:38

回答

3

FileSystemObject對象不蘇pport FTP。 Shell自動化對象的確如此,但它似乎並不喜歡NewFolder方法。這讓我們使用無人蔘與的FTP會話自動執行FTP.exe命令。它可能看起來像這樣。

strUser = "myusername" 
strPass = "mypassword" 
strHost = "ftp.myhost.com" 

Const ForWriting = 2 

Set objFso = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFso.OpenTextFile("session.txt", ForWriting, vbTrue) 

With objFile 
    .WriteLine "OPEN " & strHost 
    .WriteLine "USER " & strUser 
    .WriteLine strPass 
    .WriteLine "mkdir sometestdirectory" 
    .Close 
End With 

strFTP = "%systemroot%\System32\ftp.exe -s:session.txt" 
Set WshShell = CreateObject("WScript.Shell") 
strFTP = WshShell.ExpandEnvironmentStrings(strFTP) 
WshShell.Run strFTP,, vbTrue 

objFso.DeleteFile "session.txt", vbTrue 
+0

這不是wokrng與我的ip – Dandy 2016-01-26 05:48:48

+0

你確定strUser,strPass和strHost包含正確的憑據?你有沒有得到任何錯誤? – Nilpo 2016-01-26 09:55:32

+0

你在哪裏使用strHost變量?它被定義,但沒有在其他地方使用。 – anilca 2016-05-28 08:48:00