Ваша задача может быть легко написана с использованием языков Windows Script Host - VBScript или JScript .
Чтобы загрузить файл из Интернета, вы можете использовать объект XMLHTTP
для запроса содержимого файла с сервера, а затем использовать объект ADO Stream , чтобы сохранить его в файл на диске.
Что касается отметки времени, проблема в том, что ни VBScript, ни JScript не имеют встроенных функций, которые форматировали бы дату в нужном вам формате, поэтому вам придется написать код, чтобы сделать это самостоятельно. Например, вы можете разбить дату на части, дополнить их, если необходимо, и объединить их вместе. Или вы можете использовать объект WMI SWbemDateTime
, который использует формат даты yyyymmddHHMMSS.mmmmmmsUUU
, и просто извлечь из него часть yyyymmddHHMMSS
.
В любом случае, вот пример сценария (на VBScript), который иллюстрирует эту идею. Я жестко закодировал исходное имя файла в переменной strFile
, потому что мне было лень извлекать из URL (а также в том случае, если в URL не указано имя файла, как в http://www.google.com).
Dim strURL, strFile, strFolder, oFSO, dt, oHTTP, oStream
strURL = "http://www.google.com/intl/en_ALL/images/logo.gif" ''# The URL to download
strFile = "logo.jpg" ''# The file name
strFolder = "C:\Storage" ''# The folder where to save the files
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
''# If the download folder doesn't exist, create it
Set oFSO = CreateObject("Scripting.FileSystemObject")
If Not oFSO.FolderExists(strFolder) Then
oFSO.CreateFolder strFolder
End If
''# Generate the file name containing the date-time stamp
Set dt = CreateObject("WbemScripting.SWbemDateTime")
dt.SetVarDate Now
strFile = oFSO.GetBaseName(strFile) & "-" & Split(dt.Value, ".")(0) & "." & oFSO.GetExtensionName(strFile)
''# Download the URL
Set oHTTP = CreateObject("MSXML2.XMLHTTP")
oHTTP.open "GET", strURL, False
oHTTP.send
If oHTTP.Status <> 200 Then
''# Failed to download the file
WScript.Echo "Error " & oHTTP.Status & ": " & oHTTP.StatusText
Else
Set oStream = CreateObject("ADODB.Stream")
oStream.Type = adTypeBinary
oStream.Open
''# Write the downloaded byte stream to the target file
oStream.Write oHTTP.ResponseBody
oStream.SaveToFile oFSO.BuildPath(strFolder, strFile), adSaveCreateOverWrite
oStream.Close
End If
Не стесняйтесь спрашивать, если вам нужно больше объяснений.