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

Этот код Безразлично «т работать, однако, когда я заменить ftp://user:[email protected]/url-path с любым локальным каталогом как D: /, он работает: S

, как заставить его работать на мой фтп тоже

+0

Scripting.FileSystemObject предназначен для файловых систем, он не поддерживает FTP. –

+0

так что я использую? не могли бы вы рассказать мне? –

ответ

3

FileSystemObject не су pport FTP. Объект автоматизации оболочки делает, но ему, похоже, не нравится метод NewFolder. Это позволяет нам автоматизировать команду FTP.exe с помощью автоматической сессии FTP. Это может выглядеть примерно так.

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

+0

Вы уверены, что strUser, strPass и strHost содержат правильные учетные данные? У вас возникли какие-либо ошибки? – Nilpo

+0

Где вы используете переменную strHost? Он определен, но не используется нигде. – anilca

Смежные вопросы