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.