Как я могу загрузить что-то из Интернета напрямую, не открывая браузер Internet Explorer или Firefox Acrobat Reader/Quicktime/MS Word/ что угодно?
Я использую Windows, поэтому подойдет версия Wget для Windows.
Альтернатива, которую я недавно обнаружил, используя 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.
Wget для Windows должен работать.
Из Wget Wiki FAQ:
GNU Wget - это бесплатная сетевая утилита для извлечения файлов из World Wide Web с использованием HTTP и FTP, двух наиболее широко используемых интернет-протоколов. Он работает не в интерактивном режиме, что позволяет работать в фоновом режиме после выхода из системы.
Из этого раздела FAQ предлагаются ссылки для скачивания:
Windows Binaries
любезно предоставлено Jernej Simončič: http://eternallybored.org/misc/wget/
от sourceforge: http://gnuwin32.sourceforge.net/packages/wget.htm
[...]
Вместо этого используется ссылка с любезности Йерней Симончич.
Если у вас PowerShell> = 3.0, вы можете использовать Invoke-WebRequest
Invoke-WebRequest -OutFile index.html http://superuser.com
Или в гольф
iwr -outf index.html http://superuser.com
Windows имеет собственную утилиту загрузки из командной строки - BITSAdmin:
BITSAdmin - это инструмент командной строки, который вы можете использовать для создания заданий загрузки или выгрузки и отслеживания их выполнения.
РЕДАКТИРОВАТЬ: 26.01.15 - Вот мой обзор того, как файл может быть загружен в Windows без внешних инструментов
И полный пример битсадмина:
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 Pack для Windows Server 2003
Сохраните следующий текст как 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");
*/
Существует родной Curl для Windows , доступной здесь. Доступно много вариантов - с поддержкой SSL и без нее.
Вам не нужен дополнительный багаж Cygwin и тому подобное, всего один маленький EXE-файл.
Также важно знать, что псевдонимы wget
и curl
встроены во все современные версии Windows Powershell. Они эквивалентны.
Для получения функциональности wget
не требуется никаких дополнительных файлов или загрузок:
Использование Curl In Powershell (общительный гик)
Выдержка:
Вы можете ввести команду cURL, например, которая загружает файл из репозитория GitHub.
и будет казаться, что это работает, но на самом деле он просто использует 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.
Я сделал быстрый файл 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 для имени файла с пробелом.
Я искал то же самое, и, поскольку у меня не было привилегий для установки какого-либо из вышеперечисленных пакетов, я выбрал небольшой обходной путь (для загрузки более 30 файлов):
firefox.exe
в начале каждой строки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->run "FTP", press "OK".
Если память используется, она существует со времен Windows 98, и я могу подтвердить, что она все еще есть в Windows 8 RTM (возможно, вам придется зайти в appwiz.cpl
и добавить / удалить функции, чтобы получить ее). Эта утилита может загружать и загружать файлы на / с FTP-сайтов в Интернете. Он также может быть использован в сценариях для автоматизации любой операции.
Этот встроенный инструмент был для меня реальным спасением жизни в прошлом, особенно во времена ftp.cdrom.com - я однажды скачал Firefox таким образом, на полностью сломанной машине, на которой был только коммутируемый Интернет. подключение (назад, когда максимальный размер пакета sneakernet был все еще 1.44 МБ, и Firefox все еще назывался "Netscape" /me делает trollface).
Пара советов: это собственный командный процессор и собственный синтаксис. Попробуйте набрать "помощь". Все FTP-сайты требуют ввода имени пользователя и пароля; но если они разрешают "анонимных" пользователей, имя пользователя "анонимный", а пароль - ваш адрес электронной почты (вы можете создать его, если не хотите, чтобы его отслеживали, но обычно есть какая-то логика, чтобы убедиться, что это действительный адрес электронной почты).
И http://www.httrack.com/ имеет приятный графический интерфейс (и он бесплатный) для зеркалирования сайтов. Он также имеет версию для Linux.
Вы также можете использовать wget
упакованный в PowerShell. ; ^) Чтобы открыть, нажмите клавишу Windows и введите "powershell" или Windows-R, введите "powershell" и нажмите return.
Нет необходимости установки.
Одно интересное отличие от обычного wget
(подробнее по этой ссылке): вы не можете просто использовать «больше, чем» для передачи в файл. wget
в PowerShell - это просто удобная оболочка для Invoke-WebRequest
, и вам нужно использовать его синтаксис для записи в файл.
wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
Вы можете получить WGet для Windows здесь. В качестве альтернативы вы можете щелкнуть правой кнопкой мыши ссылку для загрузки элемента, который хотите загрузить, и выбрать «Сохранить как». Это загрузит файл, а не откроет его в назначенном приложении.
Я думаю, что установка wget
через Chocolatey - самый простой способ.
choco install wget
wget
из командной строки, как в * nix системах.Если вам нужен графический интерфейс, попробуйте VisualWget, который на самом деле чистый и с полным набором функций. Он основан на GNU Wget для его движка загрузки.
РЕДАКТИРОВАТЬ: обновленная ссылка.
Как описано в этом ответе SU, вы можете использовать в Powershell следующее:
Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext
Альтернативой использованию gnuwin32 является unxutils, включающая wget.
Если вам нужен визуальный пост для Windows, вот один.
Вы можете разместить данные или файлы с ним.