суббота, 6 февраля 2021 г.

Sending file to FTP server from VBS script

Sending to FTP and copying the link to the clipboard (Visual Basic Script)



Rem Отправка на FTP и копирование ссылки в буфер (Visual Basic Script)

Dim objArgs, Server, DomainName, Port, User, Pass, Folder, rootFolder, CloseDOS, DosStr

 

'=== Данные учетной записи FTP ===

 

Server = "00.000.000.00"

DomainName = "http://example.com"

Port = "21"

User = "***"

Pass = "***"

 

'Папка на FTP, куда будут складываться файлы

rootFolder = "public_html" 'корневая

Folder = "Forum/Dl" 'подкаталог

 

'Флаг - закрывать консольное окно после передачи данных

CloseDOS = True

if not CloseDOS then DosStr = "&pause"

 

Set objArgs = wscript.Arguments

If objArgs.Count <> 0 Then 'Проверяем аргументы (Drag & Drop "путь к файлу")

    Dim FName, WSHShell, Link, FF, TmpFile, objFile

    

    'Получаем имя файла

    FName = Mid(objArgs(0), InStrRev(objArgs(0), "\") + 1)

    'Интернет-адрес

    Link = DomainName & "/" & Folder & "/" & FName

 

    Set WSHShell = CreateObject("WScript.Shell")

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    

    'Копируем в буфер обмена Windows

    WSHShell.Run "cmd.exe /C <nul set /p ""=" & Link & """ | CLIP", 0, False

 

    'Формируем строку коннекта для утилиты FTP

    TmpFile = WSHShell.ExpandEnvironmentStrings("%temp%") & "\temp_" & CInt(Rnd() * 1000)   

    'ForAppending = 8, ForReading = 1, ForWriting = 2

    Set objFile = objFSO.OpenTextFile (TmpFile, 2, True, 0) 'True - создать файл

        objFile.WriteLine "open " & Server & " " & Port

        objFile.WriteLine User

        objFile.WriteLine Pass

        objFile.WriteLine "cd " & rootFolder & "/" & Folder

        objFile.WriteLine "binary"

        objFile.WriteLine "put """ & objArgs(0) & """"

        objFile.WriteLine "disconnect"

        objFile.WriteLine "bye"

    objFile.Close

    

    'Добавляем утилиту FTP в исключения файрвола и запускаем

    WSHShell.Run "cmd.exe /c ""(netsh firewall add allowedprogram """ & WSHShell.ExpandEnvironmentStrings("%windir%") & _

      "\system32\ftp.exe"" ENABLE& ftp -s:""" & TmpFile & """" & DosStr & ")""", 1, True

 

    objFSO.DeleteFile TmpFile, True

 

    Set WSHShell = Nothing: Set objFile = Nothing: Set objFSO = Nothing

    

    wscript.echo "Путь к файлу на FTP: " & vbLf & Link & String(2, vbLf) & _

    "Путь к файлу скопирован в буфер обмена Windows."

  Else

    wscript.echo "Перетащите файл на VBS-сценарий"

End If

Set objArgs = Nothing

Комментариев нет:

Отправить комментарий

Постоянные читатели

Популярные сообщения