Загрузите файл по HTTP из сценария в Windows

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

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

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

Если у вас есть PowerShell> = 3.0, вы можете использовать Invoke-WebRequest :

Invoke-WebRequest -OutFile su.htm -Uri superuser.com 

Или в гольф:

 iwr -outf su.htm superuser.com 

Я бы использовал BITS ( праймер ):

 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 

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

 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 

Попробуйте использовать класс Web Client . В нижней части этой страницы есть образец сценария PowerShell:

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

Скопируйте и вставьте следующие шесть строк (или только последние четыре строки) в текстовый файл. Затем переименуйте его в 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 .

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

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

  • Windows XP SP3 (Legal) скачать?
  • Как получить предупреждение от Firefox перед тем, как закрыть его, когда идет загрузка?
  • Firefox 32: загрузка не удалась; Не может читать из источника
  • Сделать Chrome всегда открытым PDF-файлы
  • Как ускорить загрузку торрентов?
  • Загрузите все ссылки PDF на веб-странице?
  • Не удается загрузить файл Windows 10 ISO (x64)
  • Почему диспетчер загрузки bitsadmin.exe не работает для меня?
  • Как сохранить фотографии из Firefox без повторной загрузки
  • Как я могу заставить Firefox загружать разные типы файлов в разные местоположения?
  • Остановка видео на YouTube
  • Давайте будем гением компьютера.