Categories: Шпаргалки

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

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

Скачать по HTTP или HTTPS

Рассмотрим методы, удобные для загрузки файлов по протоколу http (https).

DownloadFile

Данный метод удобно применять для написания скриптор. Пример:

# Задаем переменные что копируем и куда:
$download_url = «https://download_ahyware/file1.zip»
$local_path = «C:Downloadsfile1.zip»

# Создаем объект WebClient и скачиваем файл с помощью DownloadFile:
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($download_url, $local_path)

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

Invoke-WebRequest

Данный командлет предназначен для загрузки содержимого html документа. Также с его помощью можно скачивать файлы:

Invoke-WebRequest -URI https://remontka.com/files/winsetupfromusb.zip -outfile c:tempwinsetupfromusb.zip

* где URI — путь-источник (что скачиваем); outfile — путь-назначение (куда скачиваем).

Для удобства можно использовать команды wget или iwr — по сути, это алиас на Invoke-WebRequest:

wget https://remontka.com/files/winsetupfromusb.zip -o winsetupfromusb.zip

iwr https://remontka.com/files/winsetupfromusb.zip -o winsetupfromusb.zip

* обязательно задаем опцию outfile (-o) , в противном случае, загрузка выполнится, но не сохранится файл.

Скачать с FTP

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

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

$download_url = «ftp://download_ahyware/file1.zip»
$local_path = «C:Downloadsfile1.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:ProgramFiles7-Zip7z.exe»
sz x -r C:Downloadsfile1.zip -oC:Unzip

Возможные ошибки

Исключение при вызове downloadfile с 2 аргументами исключение во время запроса webclient

Причина: как правило, неправильно указан путь для загрузки или отсутствие прав на папку, в которую должно идти скачивание.

Решение: проверяем путь или пробуем указать другой.

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

4 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

4 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

4 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

4 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

4 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

4 месяца ago