Вы должны войти, чтобы создавать сообщения и темы.

Скачивание файлов через VBScript

Всем привет.
Время от времени мне необходимо обновлять файл на моем компьютере, для этого я захожу на локальный сервер, скачиваю файл, перемещаю файл из загрузок в нужное мне место и пользуюсь им дальше.
Нашел в интернете скрипт, который может скачивать файл и он с этим справляется на все 100%, только есть один вопрос, как указать, чтобы скрипт качал файл не в какую-нибудь конкретную папку, а туда где находится сам скрипт?
(В качестве примера взял вайбер, так как не могу дать доступ к локальному серверу, но суть вопроса думаю понятно)

InetFile = "https://download.cdn.viber.com/desktop/windows/ViberSetup.exe"
localFile = "C:\Users\Admin\Desktop\ViberSetup.exe"

Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", InetFile, 0
oXMLHTTP.Send

Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3 
oADOStream.Type = 1 
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody

oADOStream.SaveToFile localFile, 2

Set oXMLHTTP = Nothing
Set oADOStream = Nothing

 

Как получить путь к самому скрипту, что б он понимал откуда он запущен, я тоже нашел:

localFile = CurrentPath = Mid(WScript.ScriptFullName,1,InStrRev(WScript.ScriptFullName,"\")-1)

но не знаю где именно указать имя файла... так как качается просто файл с именем "0" и мне тогда нужно вручную менять название и расширение файла.

Oleg Lyaskovsky, Привет.
Просто надо было получить путь к текущему скрипту.

InetFile = "https://download.cdn.viber.com/desktop/windows/ViberSetup.exe"

' в этом блоке и получаешь место скипта и название файла
Set fso = CreateObject("Scripting.FileSystemObject")
scriptFullName = WScript.ScriptFullName
scriptFolder = fso.GetParentFolderName(scriptFullName)
localFile = fso.BuildPath(scriptFolder, "ViberSetup.exe")

Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", InetFile, False
oXMLHTTP.Send

Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3
oADOStream.Type = 1
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody
oADOStream.SaveToFile localFile, 2

Set oXMLHTTP = Nothing
Set oADOStream = Nothing
Set fso = Nothing
Лайкнул Psydiant
Psydiant
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 15.07.2024, 03:35

Oleg Lyaskovsky, Привет.
Просто надо было получить путь к текущему скрипту.

 
 
 
 
InetFile = "https://download.cdn.viber.com/desktop/windows/ViberSetup.exe"
 
' в этом блоке и получаешь место скипта и название файла
Set fso = CreateObject("Scripting.FileSystemObject")
scriptFullName = WScript.ScriptFullName
scriptFolder = fso.GetParentFolderName(scriptFullName)
localFile = fso.BuildPath(scriptFolder, "ViberSetup.exe")
 
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", InetFile, False
oXMLHTTP.Send
 
Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3
oADOStream.Type = 1
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody
oADOStream.SaveToFile localFile, 2
 
Set oXMLHTTP = Nothing
Set oADOStream = Nothing
Set fso = Nothing
InetFile = "https://download.cdn.viber.com/desktop/windows/ViberSetup.exe" ' в этом блоке и получаешь место скипта и название файла Set fso = CreateObject("Scripting.FileSystemObject") scriptFullName = WScript.ScriptFullName scriptFolder = fso.GetParentFolderName(scriptFullName) localFile = fso.BuildPath(scriptFolder, "ViberSetup.exe") Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") oXMLHTTP.Open "GET", InetFile, False oXMLHTTP.Send Set oADOStream = CreateObject("ADODB.Stream") oADOStream.Mode = 3 oADOStream.Type = 1 oADOStream.Open oADOStream.Write oXMLHTTP.responseBody oADOStream.SaveToFile localFile, 2 Set oXMLHTTP = Nothing Set oADOStream = Nothing Set fso = Nothing
 
InetFile = "https://download.cdn.viber.com/desktop/windows/ViberSetup.exe"

' в этом блоке и получаешь место скипта и название файла
Set fso = CreateObject("Scripting.FileSystemObject")
scriptFullName = WScript.ScriptFullName
scriptFolder = fso.GetParentFolderName(scriptFullName)
localFile = fso.BuildPath(scriptFolder, "ViberSetup.exe")

Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", InetFile, False
oXMLHTTP.Send

Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3
oADOStream.Type = 1
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody
oADOStream.SaveToFile localFile, 2

Set oXMLHTTP = Nothing
Set oADOStream = Nothing
Set fso = Nothing

Ой большое спасибо!)🤝 То что искал😇