Скачиваем и распаковываем файл из Интернета при помощи Powershell

Обновлено и опубликовано Опубликовано:

Для загрузки файлов из Интернета в Powershell предусмотрен метод DownloadFile, которому нужно передать два аргумента — что скачиваем и куда.

Скачать с HTTP или  HTTPS

Пример скрипта:

$download_url = "http://download_ahyware/file1.zip"
$local_path = "C:\Downloads\file1.zip" 
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($download_url, $local_path)

* в данном примере мы скачаем файл http://download_ahyware/file1.zip и разместим его на компьютере по пути C:\Downloads\file1.zip.

Скачать с FTP

Принцип скачивания файлов с FTP-сервера такой же, за исключением того, что сначала необходима авторизация.

Пример скрипта:

$download_url = "ftp://download_ahyware/file1.zip"
$local_path = "C:\Downloads\file1.zip"
$user = "myFtpUser"
$pass = "myPassword123"

$WebClient = New-Object System.Net.WebClient 
$WebClient.Credentials = New-Object System.Net.NetworkCredential($user, $pass)
$WebClient.DownloadFile($download_url, $local_path)

* в данном скрипте мы авторизовываемся на FTP-сервере с учетной записью myFtpUser и паролем myPassword123. После, как в примере выше, мы скачали файл в папку C:\Downloads.

Распаковываем архив

Чаще всего, файлы в сети Интернет хранятся в сжатом виде. Поэтому, после загрузки файла есть необходимость его распаковать. Для этого в Powershell можно использовать следующую команду:

Expand-Archive $archive_file.zip -DestinationPath C:\Unzip\

Однако, не все версии Powershell поддерживают командлет Expand-Archive. В таком случае можно вызвать стороннее приложение, например 7-zip. Пример скрипта:

set-alias sz "$env:ProgramFiles\7-Zip\7z.exe" 
sz x -r C:\Downloads\file1.zip -oC:\Unzip\

# Интернет # Powershell
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет