Загрузите файл по HTTP из сценария в Windows
Я хочу, чтобы загрузить файл через HTTP с учетом его URL-адреса (аналогично тому, как работает wget). Я видел ответы на этот вопрос , но у меня есть два изменения требований:
- Я бы хотел, чтобы он работал в Windows 7 или более поздней версии (хотя, если он работает в Windows XP, это бонус).
- Мне нужно иметь возможность делать это на биржевой машине с ничего, кроме скрипта, который должен быть текстом, который можно легко ввести на клавиатуре или скопировать / вставить.
- Чем короче, тем лучше.
Поэтому, по сути, мне нужен сценарий .cmd (пакетный), скрипт VBScript или PowerShell, который может выполнить загрузку. Он может использовать COM или вызывать Internet Explorer, но он должен запускаться без ввода и должен вести себя хорошо при вызове без отображения (например, через сеанс Telnet ).
- Есть ли способ загрузить приложения Android на мой компьютер?
- Как автоматически открыть «сохраненные» pdf-файлы в системном средстве просмотра на хроме?
- Что происходит, когда загрузка файла отменяется?
- Как остановить людей от загрузки онлайн-видео для офлайн-воспроизведения?
- Загрузка из Интернета прямо на Google
- Как загрузить Flash-видео с веб-сайта?
- Сохранить несколько ссылок Pdfs сразу
- Получить продолжительность песни из mp3-файла в скрипте?
- Как загрузить и запустить версию USBView для Windows (устройство просмотра USB-устройств)?
- Как я могу ограничить размер источника Android, который мне нужно загрузить, с помощью «синхронизации репо»?
- Как загрузить пакеты ubuntu в windows для их установки на автономной машине ubuntu?
- Можете ли вы сказать по сетевому трафику, было ли видео просмотрено или загружено с YouTube?
- Программное обеспечение для автоматизации загрузки списка URL-адресов
Если у вас есть 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
Очевидно, вам нужно настроить три вещи в этом скрипте, чтобы заставить его работать на вас.
- Часть, которая гласит: « http://www.exampleURL.com/FILE.TXT ». Вам нужно будет подставить правильный URL-адрес для файла, который вы хотите загрузить.
- Команда, которую вы запускаете в командной строке для выполнения этого скрипта; Необходимо указать правильное имя для скрипта,
vget.vbs
, если это то, что вы его назвали. - И имя
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.