Wget / cURL альтернатива рідній для Windows?


60

Чи є утиліта командного рядка Wget або cURL, що є рідною для Windows Vista ? Як це працює?


Навіть Microsoft поширює wget.exeв пакеті адміністрації IIS.
— парадироїд


1
Використовувати curl лише для завантаження речей, це як використовувати vim лише для функції regex, а потім сказати питання про vim - це дублікат запитання про регулярні виразки. Так, завантаження файлів даних є величезною частиною HTTP, але це не його головне призначення.
— erikbwork

Жовтень 2017 року з ОС Windows 8.1: Wget і локон включені в PowerShell, як показано тут: stackoverflow.com/questions/33364752 / ...
— SDsolar

Ні, * nix версії wgetта curlне включаються до PowerShell. Командлет PowerShell Invoke-WebRequestпсевдонім як обидва, так wgetі curl. Він працює аналогічно для дуже основних запитів, але має суттєво різні параметри.
— Машмагар

Відповіді:


32

Native для Windows (поставляється з попередньою інсталяцією і залежить від послуги Windows Background Intelligent Transfer Service - BITS):

BITSAdmin

Він може робити те, що робить Wget, і, ймовірно, більше (ви можете контролювати поточну роботу за допомогою команд, подібних API - наприклад, ви можете отримати швидкість статусу та скасувати, якщо він занадто повільний).

Приклад використання з мого власного досвіду (ви можете робити паралельні завантаження в одному і тому ж .bat або робити послідовні завантаження в тій же роботі):

bitsadmin /create thisissomejobname

bitsadmin /addfile thisissomejobname http://kakao.ro/Pictures.iso C:\john_pictures.iso

bitsadmin /SetCredentials thisissomejobname Server BASIC somehttpuser somehttppassword

bitsadmin /resume thisissomejobname

REM how to get status:
bitsadmin /info thisissomejobname

Примітка. Він працює в Windows XP, 7, 8 і 10 (тестовано на Windows 10 Pro). У Windows XP його потрібно встановити вручну з інструментів підтримки SP2 .

На останньому Windows 10 попередження про анулювання втрачено, тому, схоже, цей корисний інструмент тут залишився.


2
перевірити / SetNotifyCmdLine варіант, якщо вам потрібно використовувати цю команду послідовно у .bat
— Tiberiu-Ionuț,

5
Запуск bitsadmin під Windows 7 відображає таке попередження: BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows. Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.Користувачі остерігайтесь.
— yop83

"Адміністративні інструменти для служби BITS тепер надаються командлетами BITS PowerShell." Нічого, чого слід остерігатися. Застарений лише клієнт BITS, а служба BITS залишиться. Він буде доступний з іншим, схожим за функціональністю клієнтом (PowerShell буде попередньо встановлений з майбутніми версіями Windows).
— Tiberiu-Ionuț Stan

Примітка. Клієнт bitsadmin присутній у Windows 8 із таким же попередженням про депресію.
— Tiberiu-Ionuț Stan

2
Це схоже на альтернативу менеджеру завантажень, а не крафтеру HTTP-запиту, чи не так?
— erikbwork

17

PowerShell v3 CTP1 поставляється з такою командою, як wget / curl. Це називається Invoke-WebRequest . Щоб дізнатися більше, ви можете відвідати пост Windows Powershell V3 включає таку команду, як wget / curl .


2
Я бачу, що і superuser.com/a/25540/106977, і superuser.com/a/330754/106977 посилаються на команди Powershell. Я не пробував жодного з них, але ці посилання пов'язані з цією публікацією.
— bgoodr

Це чудова утиліта та постачається з Windows Server 2012 R2.
— sfuqua


Як я знаю, Invoke-WebRequestне можна ігнорувати помилки сертифікатів (дуже корисна функція для розробників). Принаймні у версії 3.0
— maxkoryukov

Я не можу не Invoke-WebRequestпомітити помилок сертифікатів у PowerShell 5.1, але документація в PowerShell 6 включає SkipCertificateCheckпрапор: docs.microsoft.com/en-us/powershell/module/…
— Mashmagar

11

Я часто використовую PowerShell для простих речей, як-от DownloadString WebClient :

$wc = New-Object Net.WebClient
$wc.DownloadString('...')

Або DownloadFileякщо ви хочете, щоб щось завантажили, як, наприклад wget, і упакуйте це у функцію. Звичайно, це дуже грубо і не матиме жодних приємностей, таких як поновлені завантаження та подібні.


Використання DownloadFile. він працював , коли я пробував (PowerShell 2.0): $wc.DownloadFile('http://traffic.libsyn.com/makingembeddedsystems/embedded-ep149.mp3', 'EmbeddedFm_149.mp3'). Однак інформація про прогрес під час завантаження не існує.
— Пітер Мортенсен

@PeterMortensen: Звичайно, ні. Це просто об’єкт .NET. DownloadProgressChangedОднак ви можете приєднати обробник подій . Але я думаю, тоді вам також потрібно буде використовувати варіанти асинхронних методів.
— Joey

6

Здається, вам потрібно завантажити лише альтернативний браузер. Ви можете використовувати цю команду для завантаження Mozilla Firefox за допомогою командного рядка:

explorer.exe http://releases.mozilla.org/pub/mozilla.org/firefox/releases/6.0.2/win32/en-US/Firefox%20Setup%206.0.2.exe

Це також запускає Internet Explorer, але лише з базовим набором функцій. Це має спрацювати, навіть якщо Internet Explorer не працює (у більшості випадків).

Ви також можете використовувати команду FTP. Введіть наступне в команди командного рядка:

  1. Тип FTP- який відкриває клієнт FTP
  2. Тип open ftp.mozilla.org- підключення до Mozilla-FTP
  3. Просто увійдіть як Анонімний і введіть порожній пароль.
  4. Введіть cd /pub/mozilla.org/firefox/releases/4.0.1/win32/en-US/-для зміни каталогу
  5. Тип recv "Firefox Setup 4.0.1.exe"- Щоб завантажити інсталятор Firefox. Файл знаходиться в поточній папці командного рядка. (зазвичай ваша Profileпапка)
  6. Введіть, byeщоб закрити клієнт FTP
  7. Введіть, exitщоб закрити командний рядок.

3
Гарна відповідь, але абсолютно не пов'язана з поставленим запитанням.
— Сурма

4
Гм. Здається, як актуальним, так і прикладом використання Explor.exe в якості альтернативи.
— Майкл Коул

6

Насправді немає альтернативи Wget. Ви можете використовувати Wget для Windows і призначити шлях у змінних вашого середовища, щоб він працював так, як вам потрібно.


1
Проблема полягає в тому, що людина, з якою я працюю, отримує заморожування браузера при запуску, і вони не мають доступу до іншого комп'ютера.
— Йордан

2
Якщо вони працюють через Ethernet, змусити їх завантажуватися в безпечний режим за допомогою мереж?
— Sandeep Bansal

2

Рідний CURL для Windows доступний тут . Є безліч смаків - із підтримкою SSL, без підтримки SSL. Вам не потрібен додатковий багаж Cygwin та подібні файли, лише один невеликий файл EXE.


1

Я просто використовую Cygwin і встановлюю потрібні бібліотеки ... Я це завжди робив ...

У минулому я шукав альтернативи, так. Але Cygwin - це просто найкращий інструмент для роботи.


2
За винятком того, що надмірно встановити gazillions файлів для типової установки Cygwin, щоб отримати Wget.
— Пітер Мортенсен

Ви отримуєте wget, curl, ... та багато іншого. Я вважаю, що якщо вам потрібен wget, ви, мабуть, використовуватимете додаткові інструменти Linux у майбутньому :) - безумовно, не щоденний шкерінарій, хоча
— NicoJuicy

1

Я створив свою. Перевірте це за адресою https://github.com/acarrilho/global (внизу сторінки).

Завантажте джерело та за допомогою cmd.exe перейдіть до папки-запитувача. Звідти просто введіть, httpщоб переглянути всі доступні налаштування. Як приклад:

http -u "http://www.example.com" -oc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.