Как загрузить файлы из командной строки в Windows, например wget или curl

Как я могу скачать что-то из Интернета напрямую без Internet Explorer или Firefox, открывающего Acrobat Reader /Quicktime /MS Word /что угодно?

Я использую Windows, поэтому сделана версия Wget для Windows.

279 голосов | спросил 8 revs, 5 users 67%
Peter Mortensen
1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

17 ответов


154

Wget for Windows должен работать.

Из FAQ Wget Wiki :

  

GNU Wget - бесплатная сетевая утилита для извлечения файлов из мира   Широкая сеть с использованием HTTP и FTP, два наиболее широко используемых Интернета   протоколы. Он работает не интерактивно, что позволяет работать в   фон, после выхода из системы.

В этом разделе часто задаваемых вопросов предлагаются ссылки для скачивания:

  

Windows Binaries

     

Вместо этого используется ссылка с любезностью Jernej SimonÄ iÄ.

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
270

Альтернатива, которую я недавно обнаружил, используя PowerShell:

$ client = новый объект System.Net.WebClient
$ Client.DownloadFile ( "http://www.xyz.net/file.txt", "C: \ TMP \ file.txt")

Он также работает с запросами GET.

Если вам нужно указать учетные данные для загрузки файла, добавьте следующую строку:

$ client.Credentials = Get-Credential

Появится стандартное приглашение учетных данных Windows. Учетные данные, которые вы вводите там, будут использованы для загрузки файла. Вам нужно сделать это только один раз за все время, когда вы будете использовать объект $ client.

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
63

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

Invoke-WebRequest -OutFile index.html http://superuser.com

Или игра в гольф

iwr -outf index.html http://superuser.com

Загрузите файл через HTTP в Windows

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
38

У 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

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
27

Сохраните следующий текст как 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");
* /
ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
16

Я сделал быстрый файл 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-адреса для имени файла с пространством .

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
14

Существует встроенная cURL для Windows здесь . Существует множество опций с поддержкой SSL и без нее.

Вам не нужен дополнительный багаж Cygwin и тому подобное, только один маленький EXE файл.


Также важно знать, что есть как wget, так и curl псевдонимы, встроенные во все современные версии Windows Powershell. Они эквивалентны.

Для получения wget дополнительных файлов или загрузок не требуется:

Использование Curl In Powershell (Общительный Geek)

Выдержки:

  

Вы можете ввести команду cURL, подобную той, которая загружает файл из   Репозиторий GitHub.

     

curl http: //raw .githubusercontent.com /Лазурный /лазурь-Quickstart-шаблоны /ведущий /MongoDB-на-убунт /azuredeploy.json

     

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

     

Псевдонимы в PowerShell позволяют создавать ярлыки для более длинных команд, поэтому вам не нужно вводить их все время.

     

Если вы введете команду Get-Alias, она предоставит вам список всех псевдонимов, которые используются в PowerShell. Как вы можете видеть, команда curl просто вызывает команду Invoke-WebRequest. Они похожи, но не то же самое, поэтому вышеуказанный запрос не работает для нас.

 введите описание изображения здесь>> </a> </p>

<p> Чтобы это правильно работало в PowerShell, проще всего использовать переменные и аргумент <code>-OutFile</code>, как показано ниже: </p>

<p> <a href=  введите описание изображения здесь>> </a> </p>

<blockquote>  <p> (имя файла отключено на изображении: <a href = https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json â €)

Этот синтаксис загрузит полное содержимое целевого файла azuredeploy.json в локальный файл newfile.json


Основное преимущество заключается в том, что он встроен в сам Powershell, поэтому этот код будет выполняться напрямую без загрузки или любых других дополнительных файлов, необходимых для работы с любой современной версией Windows.

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
8

Я искал то же самое, и поскольку у меня не было привилегий для установки каких-либо из вышеперечисленных пакетов, я пошел на небольшое временное решение (чтобы загрузить 30 + файлов):

  • Я создал командный файл
  • Перечислил все файлы
  • Поместите firefox.exe в начале каждой строки
  • Перешел в каталог firefox в Program Files
  • Отказаться от него.
ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
4

Cygwin имеет Wget (и многие другие утилиты).

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
3

Если 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-сайтов требуется имя пользователя и пароль; но если они разрешают «анонимным» пользователям, имя пользователя «анонимно», а пароль - ваш адрес электронной почты (вы можете сделать его, если не хотите, чтобы его отслеживали, но обычно есть какая-то логика, чтобы убедиться, что это действительный адрес электронной почты).

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
2

И http://www.httrack.com/ имеет приятный графический интерфейс (и это бесплатно) , для зеркального отображения сайтов. Он также имеет версию Linux.

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
1

Если вам нужен графический интерфейс, попробуйте VisualWget , который на самом деле чист и полностью заполнен. Он основан на GNU Wget для своего механизма загрузки.

EDIT: обновленная ссылка.

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
1

Вы также можете использовать wget, упакованную в PowerShell . ; ^) Чтобы открыть, нажмите клавишу Windows и введите «powershell» или Windows-R и введите «powershell» и нажмите return.

Не требуется установка.

Одно интересное отличие от обычного wget (более на этой ссылке ): вы можете ' t просто используйте большее, чем для канала, в файл. wget в PowerShell - это просто удобная оболочка для Invoke-WebRequest, и вам нужно использовать ее синтаксис для записи в файл.

wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
0

Вы можете получить WGet для Windows здесь . Кроме того, вы можете щелкнуть правой кнопкой мыши ссылку для загрузки элемента, который вы хотите загрузить, и выбрать «Сохранить как». Это загрузит файл и не откроет его в назначенном приложении.

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
0

Я думаю, что установка wget через Chocolatey - самый простой способ.

  1. Установите Chocolatey
  2. В командной строке введите: choco install wget
  3. Затем вы можете использовать wget из командной строки, например, в системах * nix.
ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
-1

Альтернативой использованию gnuwin32 является unxutils , который включает wget.

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56
-2

Если вам нужна визуальная публикация для Windows, здесь является одним.
Вы можете публиковать данные или файлы.

ответил Joseph Stevens 31 J000000Tuesday18 2018, 18:28:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132