Как загрузить файлы из командной строки в Windows, например wget или curl
Как я могу скачать что-то из Интернета напрямую без Internet Explorer или Firefox, открывающего Acrobat Reader /Quicktime /MS Word /что угодно?
Я использую Windows, поэтому сделана версия Wget для Windows.
17 ответов
Wget for Windows должен работать.
Из FAQ Wget Wiki :
GNU Wget - бесплатная сетевая утилита для извлечения файлов из мира Широкая сеть с использованием HTTP и FTP, два наиболее широко используемых Интернета протоколы. Он работает не интерактивно, что позволяет работать в фон, после выхода из системы.
В этом разделе часто задаваемых вопросов предлагаются ссылки для скачивания:
Windows Binaries
любезно предоставлено Jernej SimonÄ iÄ: http://eternallybored.org/misc/wget/
from sourceforge: http://gnuwin32.sourceforge.net/packages/wget.htm
[...]
Вместо этого используется ссылка с любезностью Jernej SimonÄ iÄ.
Альтернатива, которую я недавно обнаружил, используя PowerShell:
$ client = новый объект System.Net.WebClient
$ Client.DownloadFile ( "http://www.xyz.net/file.txt", "C: \ TMP \ file.txt")
Он также работает с запросами GET.
Если вам нужно указать учетные данные для загрузки файла, добавьте следующую строку:
$ client.Credentials = Get-Credential
Появится стандартное приглашение учетных данных Windows. Учетные данные, которые вы вводите там, будут использованы для загрузки файла. Вам нужно сделать это только один раз за все время, когда вы будете использовать объект $ client.
Если у вас есть PowerShell> = 3.0, вы можете использовать Invoke-WebRequest
Invoke-WebRequest -OutFile index.html http://superuser.com
Или игра в гольф
iwr -outf index.html http://superuser.com
У Windows есть своя утилита загрузки командной строки - BITSAdmin :
BITSAdmin - это инструмент командной строки, который можно использовать для создания загрузки или загружать задания и следить за их прогрессом.
EDIT : 26.01.15 - Вот мой обзор как файл можно загружать в окна без внешних инструментов
И полный пример bitsadmin:
bitsadmin /transfer myDownloadJob /download /priority normal http: //downloadsrv/10mb.zip c: \ 10mb.zip
Изменить : 15.05.2018 - оказалось, что можно скачать файл с certutil тоже :
certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip
Certutil по умолчанию не установлен на XP /Win2003, но он доступен для новых версий Windows. Для XP /2003 вам понадобится Пакет Admin Tool для Windows Server 2003
Сохраните следующий текст как wget.js
и просто вызовите
cscript /nologo wget.js http://example.com
Это код:
var WinHttpReq = новый объект ActiveXObject ("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open («GET», WScript.Arguments (0), /* async = * /false);
WinHttpReq.Send ();
WScript.Echo (WinHttpReq.ResponseText);
/* Чтобы сохранить двоичный файл, используйте этот код вместо предыдущей строки
BinStream = новый объект ActiveXObject ("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open ();
BinStream.Write (WinHttpReq.ResponseBody);
BinStream.SaveToFile ( "out.bin");
* /
Я сделал быстрый файл myGet.bat, который вызывает описанный выше метод PowerShell.
@Echo OFF
SetLocal EnableDelayedExpansion
Установить Var =% 1
Установите Var =! Var: http: //=!
Установите Var =! Var: /=,!
Установите Var =! Var: %% 20 = ?!
Установите Var =! Var: = ?!
Вызов: LOOP! Var!
Echo.Downloading:% 1 to% ~ p0! FN!
powershell.exe -Command (new-object System.Net.WebClient) .DownloadFile ('% 1', '% ~ p0! FN!')
GoTo: EOF
: LOOP
Если "% 1" == "" GoTo: EOF
Установить FN =% 1
Установите FN =! FN:? =!
сдвиг
GoTo: LOOP
Я заимствовал какой-то код из Разбор URL-адреса для имени файла с пространством .
Существует встроенная cURL для Windows здесь . Существует множество опций с поддержкой SSL и без нее.
Вам не нужен дополнительный багаж Cygwin и тому подобное, только один маленький EXE файл.
Также важно знать, что есть как wget
, так и curl
псевдонимы, встроенные во все современные версии Windows Powershell. Они эквивалентны.
Для получения wget
дополнительных файлов или загрузок не требуется:
Использование Curl In Powershell (Общительный Geek)
Выдержки:
Вы можете ввести команду cURL, подобную той, которая загружает файл из Репозиторий GitHub.
и похоже, что он работает, но то, что он на самом деле делает, просто используя cURL как псевдоним. В приведенном выше примере, что произойдет, что вы просто получите заголовки вместо самого файла.
Псевдонимы в PowerShell позволяют создавать ярлыки для более длинных команд, поэтому вам не нужно вводить их все время.
Если вы введете команду Get-Alias, она предоставит вам список всех псевдонимов, которые используются в PowerShell. Как вы можете видеть, команда curl просто вызывает команду Invoke-WebRequest. Они похожи, но не то же самое, поэтому вышеуказанный запрос не работает для нас.
Этот синтаксис загрузит полное содержимое целевого файла azuredeploy.json
в локальный файл newfile.json
Основное преимущество заключается в том, что он встроен в сам Powershell, поэтому этот код будет выполняться напрямую без загрузки или любых других дополнительных файлов, необходимых для работы с любой современной версией Windows.
Я искал то же самое, и поскольку у меня не было привилегий для установки каких-либо из вышеперечисленных пакетов, я пошел на небольшое временное решение (чтобы загрузить 30 + файлов):
- Я создал командный файл
- Перечислил все файлы
- Поместите
firefox.exe
в начале каждой строки - Перешел в каталог firefox в
Program Files
- Отказаться от него.
Cygwin имеет Wget (и многие другие утилиты).
Если PowerShell - это вариант, это предпочтительный маршрут, поскольку вы (потенциально) выиграли не нужно устанавливать ничего лишнего:
(new-object System.Net.WebClient) .DownloadFile ('http://www.xyz.net/file.txt', 'C: \ tmp \ file.tx ?? t')
В противном случае Wget для Windows, как указывали другие, определенно является вторым лучшим вариантом. Как указано в другом ответе, похоже, что вы можете загрузить Wget самостоятельно или вы может захватить его как часть Cygwin или MSys .
Если по какой-то причине вы оказались застрявшим во временной деформации, используя машину, у которой нет PowerShell и , у вас есть нулевой доступ к рабочему веб-браузеру (то есть Internet Explorer единственный браузер в системе и его настройки повреждены), а ваш файл находится на FTP-сайте (в отличие от HTTP):
start-> запустите «FTP», нажмите «ОК».
Если память работает, она существует с Windows 98, и я могу подтвердить, что она все еще присутствует в RTM Windows 8 (возможно, вам придется перейти в appwiz.cpl
и добавить /удалить функции, чтобы получить Это). Эта утилита может загружать и загружать файлы на /с FTP-сайтов в Интернете. Он также может быть использован в скрипты для автоматизации любой операции.
Этот инструмент, встроенный в реальную жизнь, был для меня в прошлом, особенно в дни ftp.cdrom.com - я загрузил Firefox так же, на полностью сломанной машине, на которой был только набор -up Internet connection (назад, когда максимальный размер пакета sneakernet был еще 1,44 МБ, а Firefox по-прежнему назывался «Netscape» /me trollface ).
Несколько советов: это собственный командный процессор, и он имеет свой собственный синтаксис. Попробуйте ввести «помощь». Для всех FTP-сайтов требуется имя пользователя и пароль; но если они разрешают «анонимным» пользователям, имя пользователя «анонимно», а пароль - ваш адрес электронной почты (вы можете сделать его, если не хотите, чтобы его отслеживали, но обычно есть какая-то логика, чтобы убедиться, что это действительный адрес электронной почты).
И http://www.httrack.com/ имеет приятный графический интерфейс (и это бесплатно) , для зеркального отображения сайтов. Он также имеет версию Linux.
Если вам нужен графический интерфейс, попробуйте VisualWget , который на самом деле чист и полностью заполнен. Он основан на GNU Wget для своего механизма загрузки.
EDIT: обновленная ссылка.
Вы также можете использовать wget
, упакованную в PowerShell . ; ^) Чтобы открыть, нажмите клавишу Windows и введите «powershell» или Windows-R и введите «powershell» и нажмите return.
Не требуется установка.
Одно интересное отличие от обычного wget
(более на этой ссылке ): вы можете ' t просто используйте большее, чем для канала, в файл. wget
в PowerShell - это просто удобная оболочка для Invoke-WebRequest
, и вам нужно использовать ее синтаксис для записи в файл.
wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
Вы можете получить WGet для Windows здесь . Кроме того, вы можете щелкнуть правой кнопкой мыши ссылку для загрузки элемента, который вы хотите загрузить, и выбрать «Сохранить как». Это загрузит файл и не откроет его в назначенном приложении.
Я думаю, что установка wget
через Chocolatey - самый простой способ.
- Установите Chocolatey
- В командной строке введите:
choco install wget
- Затем вы можете использовать
wget
из командной строки, например, в системах * nix.
Альтернативой использованию gnuwin32 является unxutils , который включает wget.
Если вам нужна визуальная публикация для Windows, здесь является одним.
Вы можете публиковать данные или файлы.