Для загрузки файлов по протоколам 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