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