2009-08-19 11:40:48 +0000 2009-08-19 11:40:48 +0000
372
372

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

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

Я использую Windows, так что подойдет версия Wget для Windows.

Ответы (19)

323
323
323
2011-09-01 13:25:11 +0000

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

$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")

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

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

$client.Credentials = Get-Credential

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

187
187
187
2009-08-19 11:45:59 +0000

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

Из Wget Wiki FAQ :

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

Из этого раздела FAQ предлагаются ссылки на загрузку:

Бинарии Windows

Вместо этого используется ссылка с любезностью Ернея Симончича.

95
95
95
2014-05-17 19:15:46 +0000

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

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

Или сыграть в гольф

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

Загрузить файл по HTTP в Windows

64
64
64
2011-12-30 17:40:02 +0000

Windows имеет свою собственную утилиту загрузки из командной строки - БИТСАdmin :

БИТСАdmin представляет собой инструмент командной строки, который можно использовать для создания загрузки или выгрузки заданий и мониторинга их выполнения.

EDIT : 26.01.15 - Вот мой обзор того, как файл может быть загружен в окнах без внешних инструментов

И полный пример битсадмина:

bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:0mb.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 Pack for windows server 2003

33
33
33
2013-01-15 07:03:23 +0000

Сохраните следующий текст как wget.js и просто позвоните

cscript /nologo wget.js http://example.com

Это код:

var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET", WScript.Arguments(0), /*async=*/false);
WinHttpReq.Send();
WScript.Echo(WinHttpReq.ResponseText);

/* To save a binary file use this code instead of previous line
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();
BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile("out.bin");
*/
22
22
22
2013-03-02 13:30:36 +0000

Я сделал быстрый файл myGet.bat, который вызывает метод PowerShell, описанный выше.

@Echo OFF
SetLocal EnableDelayedExpansion
Set Var=%1
Set Var=!Var:http://=!
Set Var=!Var:/=,!
Set Var=!Var:%%20=?!
Set Var=!Var: =?!
Call :LOOP !var!
Echo.Downloading: %1 to %~p0!FN!
powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('%1','%~p0!FN!')
GoTo :EOF
:LOOP
If "%1"=="" GoTo :EOF
Set FN=%1
Set FN=!FN:?= !
Shift
GoTo :LOOP

Я позаимствовал кое-какой код из URL разбора имени файла с пробелом _.

22
22
22
2012-10-27 14:16:23 +0000

Имеется родная cURL для Windows здесь . Доступно много вариантов - с поддержкой SSL и без нее.

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

  • *

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

** Для получения функциональности wget не требуется дополнительных файлов или загрузок:** Использование Curl In Powershell (The Sociable Geek)

Выдержка:

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

curl http://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json

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

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

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

Для корректной работы в PowerShell проще всего использовать переменные и аргумент -OutFile, как показано здесь:

(имя файла обрезается на изображении https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy. json “)

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

  • *

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

8
8
8
2013-04-09 08:13:58 +0000

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

  • Я создал пакетный файл
  • Перечислил все файлы
  • Положил firefox.exe в начале каждой строки
  • Пошёл в каталог Firefox в Program Files
  • Пробежал его.
4
4
4
2017-02-01 14:06:11 +0000

Также можно использовать wget, упакованный в PowerShell . ;^) Чтобы открыть, нажмите клавишу Windows и введите “powerhell” или Windows-R, а затем введите “powerhell” и нажмите кнопку return.

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

Интересное отличие от обычной wget (подробнее см. по ссылке ](https://superuser.com/a/693179/114388)): Вы не можете просто использовать больше, чем просто подключить к файлу. wget в PowerShell - это просто удобная обертка для Invoke-WebRequest, и вам нужно использовать ее синтаксис для записи в файл.

wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
4
4
4
2012-10-22 05:48:35 +0000

Если PowerShell является опцией, то это предпочтительный маршрут, так как вам (потенциально) не придется устанавливать ничего лишнего:

(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt', 'C:\tmp\file.tx??t')

Failing that, Wget для Windows, как другие отмечали, определенно является вторым лучшим вариантом. Как написано в другом ответе, похоже, что вы можете загрузить Wget полностью самостоятельно , или взять его как часть Cygwin или MSys .

Если по какой-то причине вы застряли в искривлении времени, используя машину без PowerShell и вы имеете нулевой доступ к работающему веб-браузеру (то есть Internet Explorer - единственный браузер в системе, и его настройки повреждены), и ваш файл находится на FTP-сайте (в отличие от HTTP):

start->run "FTP", press "OK".

Если память обслуживает ее, то она есть с Windows 98, и я могу подтвердить, что она все еще есть в Windows 8 RTM (возможно, вам придется зайти в appwiz.cpl и добавить/удалить функции, чтобы получить ее). Эта утилита может как скачивать, так и загружать файлы на/с FTP сайты в интернете. Она также может быть использована в скриптах для автоматизации любой операции.

Этот встроенный инструмент в прошлом был для меня настоящим спасителем жизни, особенно во времена ftp.cdrom. com – Я скачал Firefox таким образом однажды, на полностью сломанной машине, которая имела только коммутируемое соединение с Интернетом (когда максимальный размер пакета sneakernet был все еще 1.44 MB, а Firefox все еще назывался “Netscape” /me does trollface).

Пара советов: это его собственный командный процессор, и у него есть свой собственный синтаксис. Попробуйте набрать “help”. Все FTP-сайты требуют имя пользователя и пароль; но если они разрешают “анонимных” пользователей, то имя пользователя - “анонимный”, а пароль - ваш адрес электронной почты (вы можете его придумать, если не хотите, чтобы вас отслеживали, но обычно есть какая-то логика, чтобы убедиться, что это действительный адрес электронной почты).

3
3
3
2019-06-02 21:52:23 +0000

Поиск функции /download на https://lolbas-project.github.io .

Прямо сейчас есть Bitsadmin.exe, Certutil.exe, Esentutl.exe, Expand.exe, Extrac32.exe, Findstr.exe, Hh.exe, Ieexec.exe, Makecab.exe, Replace.exe для Windows vista, Windows 7, Windows 8, Windows 8.1, Windows 10 и эквивалентные версии сервера.

3
3
3
2012-02-16 17:10:01 +0000

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

2
2
2
2009-08-19 11:54:38 +0000

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

1
1
1
2009-08-19 11:46:49 +0000

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

1
1
1
2018-06-17 11:29:05 +0000

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

  1. Установка Chocolatey
  2. Из командной строки наберите: choco install wget
  3. Затем вы можете использовать wget из командной строки, как на *nix системах.
0
0
0
2018-12-05 19:27:48 +0000

Как описано в этом SU answer , в Powershell можно использовать следующее:

Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext
0
0
0
2012-02-16 16:58:17 +0000

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

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

-1
-1
-1
2011-07-21 16:00:11 +0000

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

-3
-3
-3
2016-04-12 07:45:52 +0000

Если вам нужно визуальное Сообщение для Windows, здесь это оно. С его помощью вы можете размещать данные или файлы.

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

7
3
19
16
13