Скачать файл через HTTP из скрипта в Windows


19

Мне нужен способ загрузки файла через HTTP с учетом его URL (аналогично тому, как работает wget). Я видел ответы на этот вопрос , но у меня есть два изменения в требованиях:

  • Я хотел бы, чтобы он работал на Windows 7 или более поздней версии (хотя, если он работает на Windows XP, это бонус).
  • Я должен быть в состоянии сделать это на обычном компьютере без сценария, который должен быть текстом, который можно легко ввести с клавиатуры или скопировать / вставить.
  • Чем короче, тем лучше.

Поэтому, по сути, я хотел бы сценарий .cmd (пакетный), VBScript или PowerShell, который может выполнить загрузку. Он может использовать COM или вызывать Internet Explorer, но он должен работать без какого-либо ввода и должен вести себя хорошо при вызове без отображения (например, через сеанс Telnet ).


dload v1.0 - инструмент командной строки win32, такой как wget superuser.com/a/833445/384998
seizu


Не дубликат, потому что этот вопрос специально ищет что-то, что будет работать на стандартной машине (без дополнительного программного обеспечения, такого как wget для Windows).
Джейсон Р. Кумбс

@ JasonR.Coombs Принятый ответ такой же, как один из ответов на этот вопрос, поэтому будущий читатель больше ничего не получит.
Франклин Ю

Я согласен; в этот момент более общий вопрос заменяет этот.
Джейсон Р. Кумбс

Ответы:



14

Я хотел бы использовать биты ( учебник для начинающих ):

Background Intelligent Transfer Service (BITS) is a component of modern
Microsoft Windows operating systems that facilitates prioritized,
throttled, and asynchronous transfer of files between machines using
idle network bandwidth.

Начиная с Windows 7, Microsoft рекомендует использовать командлеты PowerShell для BITS.

% import-module bitstransfer
% Start-BitsTransfer http://path/to/file C:\Path\for\local\file

Вы также можете использовать биты через COM , см. Здесь пример VBScript . И есть битсадмин , инструмент командной строки для управления загрузками:

BITSAdmin is a command-line tool that you can use to create download or
upload jobs and monitor their progress.

В Windows 7 bitsadmin.exeзаявляет, что это устаревший инструмент. тем не менее:

% bitsadmin.exe /transfer "NAME" http://path/to/file C:\Path\for\local\file

2
Похоже, что теперь битсадмин устарел и может быть не включен в будущие версии Windows.
Джейсон Р. Кумбс

@ JasonR.Coombs: ссылка? ссылка?
Акира

2
technet.microsoft.com/en-us/magazine/ff382721.aspx ... так что вместо "bitadmin.exe" просто используются бит-командлеты.
Акира

1
Спасибо за это. Все, что мне нужно было сделать, это то, что битсадмин говорил мне, что он устарел, когда я его запускал.
Джейсон Р. Кумбс

обратите внимание, что
выходной

7

Попробуйте класс веб-клиента . Существует пример сценария PowerShell в нижней части этой страницы:

$c = new-object system.net.WebClient
$r = new-object system.io.StreamReader $c.OpenRead("http://superuser.com")
echo $r.ReadToEnd()

2
Это полезно Я обнаружил, что у WebClient также есть метод DownloadFile, который загружает контент прямо в файл. Благодарю.
Джейсон Р. Кумбс

3

Скопируйте и вставьте следующие шесть строк (или только последние четыре строки) в текстовый файл. Затем переименуйте его в vget.vbs.

'cscript vget.vbs >FILE.TXT
'Run this vbscript at command line. Use above syntax to download/create FILE.TXT
Set oX = CreateObject("Microsoft.XmlHTTP")
oX.Open "GET", "http://www.exampleURL.com/FILE.TXT", False
oX.Send ""
WScript.Echo oX.responseText

Очевидно, вам нужно настроить три вещи в этом скрипте, чтобы он работал на вас.

  1. Часть, которая говорит " http://www.exampleURL.com/FILE.TXT ". Вам нужно будет заменить правильный URL-адрес файла, который вы хотите загрузить.
  2. Команда, которую вы запустите в командной строке, чтобы выполнить этот скрипт; Вам нужно будет указать правильное имя для скрипта vget.vbs, если вы его так назвали.
  3. И имя, на FILE.TXTкоторое вы хотите, чтобы вывод направлялся в командной строке DOS .

Я только попытался использовать это для загрузки необработанного текстового файла ASCII (более мощный сценарий cmd) из моей учетной записи Dropbox , поэтому я не знаю, будет ли он работать для файлов EXE и т. Д .; или с других веб-серверов.

Если вы обойдетесь без первых двух строк комментариев, это будет всего четыре строки. Если вы знаете, как работать с VBScript, вы даже можете носить этот код в своей голове и вводить его в командной строке по мере необходимости. Он содержит только пять ключевых компонентов команды: CreateObject, .Open, .Send, WScript.Echoи .responseText.


1

Вот моя попытка возобновить способы загрузки файла в Windows без использования внешних инструментов.

Он включает в себя BITSADMIN, Microsoft.XmlHTTP и WinHTTP с гибридным пакетным / JScript- скриптом, который не требует временных файлов, и System.Net.WebClinet с самоскомпилированным гибридом jscript.net.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.