Windows: PowerShell — Скачать Файл по URL

Для загрузки файлов по протоколам HTTP и HTTPS в Windows может использоваться PowerShell.

В PowerShell, в качестве альтернативы командам curl и wget в Linux, выступает команда Invoke-WebRequest, которую можно использовать, чтобы скачать файл по URL.

В этой заметке я покажу, как загрузить файл по URL с помощью команды Invoke-WebRequest в PowerShell, как исправить низкую скорость загрузки и как передавать HTTP-заголовки (например, API-ключ).

Wget & cURL: Команды curl и wget в PowerShell являются алиасами команды Invoke-WebRequest.

Скачать Файл с помощью PowerShell

Загрузите файл с URL-адреса с помощью PowerShell по протоколам HTTP и HTTPS:

PS C:\> Invoke-WebRequest https://path/to/file.txt -OutFile C:\file.txt

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

PS C:\> $progresspreference = 'silentlyContinue'
PS C:\> Invoke-WebRequest https://path/to/file.txt -OutFile C:\file.txt
PS C:\> $progressPreference = 'Continue'

Загрузить файл, передав какую-то информацию в заголовке (например, API-ключ):

PS C:\> Invoke-WebRequest -H @{'apiKey'='keyValue'} https://path/to/file.txt -OutFile C:\file.txt

Загрузить файл, передав несколько HTTP-заголовков:

PS C:\> Invoke-WebRequest -H @{'authUser'='userValue'; 'authPass'='passValue'} https://path/to/file.txt -OutFile C:\file.txt