Загрузка файлов в PowerShell — фундаментальная задача при работе с интерфейсом командной строки. Если вам нужно получить файл из Интернета или перенести его из удаленного места, PowerShell предоставляет для этого несколько удобных методов. В этой статье мы рассмотрим различные подходы к загрузке файлов в PowerShell, дополненные разговорными объяснениями и практическими примерами кода.
Метод 1: использование Invoke-WebRequest
Командлет Invoke-WebRequest — это универсальный инструмент для загрузки файлов из Интернета.
$url = "https://example.com/file.zip"
$outputPath = "C:\Downloads\file.zip"
Invoke-WebRequest -Uri $url -OutFile $outputPath
Метод 2: использование WebClient
Класс WebClient предлагает простой способ загрузки файлов в PowerShell.
$url = "https://example.com/file.zip"
$outputPath = "C:\Downloads\file.zip"
$webClient = New-Object System.Net.WebClient
$webClient.DownloadFile($url, $outputPath)
Метод 3. Использование BITS (фоновой интеллектуальной службы передачи)
BITS – это встроенная служба Windows, обеспечивающая асинхронную передачу файлов.
$url = "https://example.com/file.zip"
$outputPath = "C:\Downloads\file.zip"
Import-Module BitsTransfer
Start-BitsTransfer -Source $url -Destination $outputPath
Метод 4: использование System.Net.Http.HttpClient
Если вы предпочитаете работать с классами.NET, вы можете использовать класс System.Net.Http.HttpClient.
$url = "https://example.com/file.zip"
$outputPath = "C:\Downloads\file.zip"
$client = New-Object System.Net.Http.HttpClient
$response = $client.GetAsync($url).Result
$response.Content | Out-File -FilePath $outputPath
Метод 5: использование Invoke-RestMethod
Invoke-RestMethod — еще один командлет, который можно использовать для загрузки файлов, особенно при работе с RESTful API.
$url = "https://example.com/file.zip"
$outputPath = "C:\Downloads\file.zip"
Invoke-RestMethod -Uri $url -OutFile $outputPath
В этой статье мы рассмотрели различные способы загрузки файлов в PowerShell, каждый из которых имеет свои преимущества. Независимо от того, предпочитаете ли вы использовать такие командлеты, как Invoke-WebRequest и Invoke-RestMethod, или классы.NET, такие как WebClient и HttpClient, PowerShell предлагает широкий спектр возможностей для извлечения файлов. Освоив эти методы, вы сможете эффективно справляться с различными сценариями загрузки файлов.
Не забудьте адаптировать примеры кода к вашим конкретным потребностям, например настроить URL-адреса и пути вывода. Удачной загрузки в PowerShell!