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

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

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


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

Из Wget Wiki FAQ:

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

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

Двоичные файлы Windows

  • любезно предоставлено Ернеем Симончичем: http://eternalbored.org/misc/wget/

  • из sourceforge: http://gnuwin32.sourceforge.net/packages/wget.htm

  • [. ..]

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


Я недавно обнаружил альтернативу с помощью 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.


Я недавно обнаружил альтернативу с помощью PowerShell:

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

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

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

  $ client.Credentials = Get-Credential  

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


Содержание
  1. cURL
  2. PowerShell
  3. cURL
  4. PowerShell

cURL

Windows 10 включает curl.exe :

https://techcommunity.microsoft.com/t5/containers/-/ ba-p/382409

, чтобы вы могли сделать что-то вроде этого:

  # пример 1curl.exe --output index.html --url  https://superuser.com# example 2curl.exe -o index.html https://superuser.com  

Если у вас более старая версия Windows, вы все равно можете загрузить ее:

https://curl.haxx.se/windows

PowerShell

# пример 1Invoke-WebRequest -OutFile  index.html -Uri https://superuser.com# example 2iwr -outf index. html https://superuser.com  

https://docs.microsoft.com/powershell/module/microsoft.powershell.utility/invoke-webrequest


cURL

Windows 10 включает curl.exe :

https://techcommunity.microsoft.com/t5/containers/-/ba-p/382409

, чтобы вы могли сделать что-то вроде этого:

  # пример 1curl.exe --output index.html --url https://superuser.com# example 2curl.exe -o index.html https://superuser.com  

Если у вас более старая версия Windows, вы все равно можете ее загрузить:

https://curl.haxx.se/windows

PowerShell

  # пример 1Invoke-WebRequest -OutFile index.html -Uri https://superuser.com# example 2iwr -outf index.html https://superuser  .com  

https://docs.microsoft.com/powershell/module/microsoft.powershell.utility/invoke-webrequest


В Windows есть собственная утилита загрузки из командной строки — BITSAdmin:

BITSAdmin — это инструмент командной строки, который можно использовать для создания заданий загрузки или выгрузки и отслеживания их выполнения.

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

И полный пример bitsadmin:

  bitsadmin/transfer myDownloadJob/download/priority normal http://downloadsrv/10mb.zip c:   10mb.zip  

Edit : 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

v>

Windows имеет свой собственный Утилита загрузки из командной строки — BITSAdmin:

BITSAdmin — это инструмент командной строки, который можно использовать для создания заданий загрузки или выгрузки и отслеживания их выполнения.

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

И полный пример bitsadmin:

  bitsadmin/transfer myDownloadJob/download/priority normal http://downloadsrv/10mb.zip c:  10mb.zip  

Edit : 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);/* Для сохранения двоичного файла используйте этот код вместо предыдущего lineBinStream = new ActiveXObject ("ADODB.Stream  "); BinStream.Type = 1; BinStream.Open (); BinStream.Write (WinHttpReq.ResponseBody); BinStream.SaveToFile (" out.bin "); */ 


Сохраните следующий текст как 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);/* Чтобы сохранить двоичный файл, используйте этот код вместо предыдущего lineBinStream = new ActiveXObject ("ADODB.Stream"); ​​BinStream.Type = 1; BinStream.Open (); BinStream.Write (WinHttpReq.ResponseBody  ); BinStream.SaveToFile ("out.bin"); */ 

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

  @Echo OFFSetLocal EnableDelayedExpansionSet Var =% 1Set Var =! Var: http://=! Set Var =  ! Var:/= ,! Set Var =! Var: %% 20 = ?! Set Var =! Var: = ?! Вызов: LOOP! Var! Echo.Downloading:% 1 to% ~ p0! FN! Powershell.exe  -Command (новый-объект System.Net.WebClient) .DownloadFile ('% 1', '% ~ p0! FN!') GoTo: EOF: LOOPIf "% 1" == "" GoTo: EOFSet FN =% 1Set FN  =! FN:? =! ShiftGoTo: LOOP  

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


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

  @Echo  OFFSetLocal EnableDelayedExpansionSet Var =% 1Set Var =! Var: http://=! Set Var =! Var:/= ,! Set Var =! Var: %% 20 = ?! Set Var =! Var: = ?! Вызов:  LOOP! Var! Echo.Downloading:% 1 в% ~ p0! FN! Powershell.exe -Command (новый-объект System.Net.WebClient) .DownloadFile ('% 1', '% ~ p0! FN!') GoTo  : EOF: LOOPIf "% 1" == "" GoTo: EOFSet FN =% 1Set FN =! FN:? =! ShiftGoTo: LOOP  

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


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

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


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

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

Использование Curl в Powershell (Общительный компьютерщик)

Отрывок:

Вы можете ввести команду 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 требуются любые другие дополнительные файлы.


Доступен собственный cURL для Windows Вот. Доступно множество вариантов — с поддержкой SSL и без нее.

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


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

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

Использование Curl в Powershell (Общительный компьютерщик)

Отрывок:

Вы можете ввести команду 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 требуется создание каких-либо других дополнительных файлов.


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

  • Я создал командный файл
  • Список всех файлов.
  • Поместите firefox.exe в начало каждой строки
  • Перешел в каталог firefox в Program Files
  • Выполнить.

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

  • Я создал командный файл
  • Перечислил все файлы
  • Поместил firefox.exe в начале каждой строки.
  • Переход в каталог firefox в Program Files
  • Выполнить.

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

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

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

  wget https://superuser.com/questions/25538 -OutFile rubySlippers.html  


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

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

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

  wget https://superuser.com/questions/25538 -OutFile rubySlippers.html  

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

  (new-  объект System.Net.WebClient) .DownloadFile ('http://www.example.com/file.txt', 'C:  tmp  file.txt')  

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

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

  start-> запустите «FTP», нажмите «OK».  

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

Этот встроенный инструмент в прошлом спасал мне жизнь, особенно во времена ftp.cdrom.com — — Я скачал Firefox таким образом однажды, на полностью сломанном компьютере, который имел только коммутируемое подключение к Интернету (в те времена, когда максимальный размер пакета sneakernet был еще 1,44 МБ, а Firefox все еще назывался «Netscape» /me делает троллфейс ).

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


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

  (новый объект System.Net.WebClient) .DownloadFile ('http://www.example.com/file  .txt ',' C:  tmp  file.txt ')  

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

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

  start-> запустите «FTP», нажмите «OK».  

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

Этот встроенный инструмент в прошлом спасал мне жизнь, особенно во времена ftp.cdrom.com — — Я скачал Firefox таким образом однажды, на полностью сломанном компьютере, который имел только коммутируемое подключение к Интернету (в те времена, когда максимальный размер пакета sneakernet был еще 1,44 МБ, а Firefox все еще назывался «Netscape» /me делает trollface ).

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


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


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


Поиск функции /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 и эквивалентные версии Сервера.


Поиск функции /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 и эквивалентные серверные версии.


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


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


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


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


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

  1. Установить Chocolatey
  2. В командной строке введите: choco install wget
  3. Затем вы можете использовать wget из командной строки, как в системах * nix.

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

  1. Установить Chocolatey
  2. В командной строке введите: choco install wget
  3. Вы затем можно использовать wget из командной строки, как в системах * nix.

В Win CMD (если у вас есть доступ на запись):

  установите url = https://www.nsa.org/content/hl-images/ 2017/02/09/NSA.jpgset file = file.jpgcertutil -urlcache -split -f%  url%% file% echo Done.  

Встроено в приложение Windows. Нет необходимости во внешних загрузках.

Протестировано в Win 10


При Win CMD (если у вас доступ для записи):

  установить url = https://www.nsa.org/content/hl-images/2017/02/09/NSA.jpgset file = file.  jpgcertutil -urlcache -split -f% url%% file% echo Done.  

Встроено в приложение Windows. Нет необходимости во внешних загрузках.

Протестировано на Win 10


В Windows можно также использовать эмулятор терминала Linux, например MobaXterm или WSL2.

Процедура одинакова для обоих, отличается только процесс установки.

Для MobaXterm, это процедура:

  1. Загрузите и установите MobaXterm (Home Edition может быть достаточно для вашего варианта использования).

  2. Получите доступ к MobApt (менеджер пакетов MobaXterm), открыв терминал и запустив MobApt.

  1. Найдите пакет wget и нажмите Установить/обновить (при условии, что он еще не установлен).

  1. Затем запустите ваш сценарий (я оставлю внизу пример сценария wget, который вы можете запустить).

Для WSL2 это процедура:

  1. Установите WSL2 (https://docs.microsoft.c om/en-us/windows/wsl/install-win10). Я использую Ubuntu 18.

  2. После завершения настройки откройте и выполните следующую команду:

sudo apt-get install wget

  1. Затем запустите ваш скрипт (я оставлю внизу пример wget сценарий, который вы можете запустить).

Этот сценарий можно использовать в обоих случаях:

  wget -  -header = 'Accept-Language: en-US, en; q = 0,9, pt-PT; q = 0,8, pt; q = 0,7, de; q = 0,6, fr; q = 0,5, es; q = 0,4,  it; q = 0.3, gl; q = 0.2, hu; q = 0.1 '--user-agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/83.0.  4103.116 Safari/537.36 "-c" http://... "-w 1  


В Windows можно также использовать эмулятор терминала Linux, например MobaXterm или WSL2.

Процедура одинакова для обоих, но отличается только процесс установки.

Для MobaXterm это процедура:

  1. Загрузите и Установите MobaXterm (Home Edition может быть достаточно для вашего случая использования).

  2. Войдите в MobApt (менеджер пакетов MobaXterm), открыв терминал и запустите MobApt .

  1. Найдите пакет wget и нажмите Install/Update (при условии, что он все еще не установлен).

  1. Затем запустите свой сценарий (я оставлю внизу пример сценария wget, который вы можете запустить).

Для WSL2 это процедура:

  1. Установите WSL2 (https://docs.microsoft.com/en-us/windows/ wsl/install-win10). Я использую Ubuntu 18.

  2. После завершения настройки откройте и выполните следующую команду:

sudo apt-get install wget

  1. Затем запустите ваш скрипт (я оставлю в внизу — пример сценария wget, который вы можете запустить).

Этот сценарий можно использовать в обоих случаях:

   wget --header = 'Accept-Language: en-US, en; q = 0.9, pt-PT; q = 0.8, pt; q = 0.7, de; q = 0.6, fr; q = 0.5  , es; q = 0,4, it; q = 0,3, gl; q = 0,2, hu; q = 0,1 '--user-agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,  как Gecko) Chrome/83.0.4103.116 Safari/537.36 "-c" http://... "-w 1  

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

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


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

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


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

  Import-Module bitstransferstart-bitstransfer -source http://something/something.ext  -передача c:  something.ext  


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

  Import-Module bitstransferstart-bitstransfer -source http://something/something.ext -destination c:  something.ext   

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


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

Оцените статью
techsly.ru
Добавить комментарий