VBscript, создать каталог в FTP - PullRequest
3 голосов
/ 17 февраля 2012

Я хотел бы создать каталог на FTP, имя каталога должно совпадать с именем моего компьютера,

вот мой код,

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

Этот код неработать, однако, когда я заменяю ftp: // user: password @ ftpserver / url-path на любой локальный каталог, например D: /, он работает: S

как заставить его работать дляftp тоже

1 Ответ

3 голосов
/ 17 февраля 2012

FileSystemObject не поддерживает FTP. Объект автоматизации Shell делает, но, похоже, ему не нравится метод 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
...