2012-02-17 35 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