我想让我的 PowerShell 从互联网上下载一个文件。那么我怎么能做到我的原始代码是$File = URL
Download file.WebClient = File.ext
这是很常见的事情,并且在网络和 Youtube 视频中都有很好的记录。快速的网络搜索将为您提供选择。有多种方法可以进行网络下载。
从上面的搜索中点击:
- 调用 WebRequest
第一个也是最明显的选项是 Invoke-WebRequest cmdlet。它内置于 PowerShell 中,可以通过以下方法使用:
$url = "http://mirror.internode.on.net/pub/test/10meg.test"
$output = "$PSScriptRoot\10meg.test"
$start_time = Get-Date
Invoke-WebRequest -Uri $url -OutFile $output
Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)"
- 系统.Net.Web客户端
用于下载文件的常见 .NET 类是 System.Net.WebClient 类。
$url = "http://mirror.internode.on.net/pub/test/10meg.test"
$output = "$PSScriptRoot\10meg.test"
$start_time = Get-Date
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($url, $output)
#OR
(New-Object System.Net.WebClient).DownloadFile($url, $output)
Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)"
- 起始位转移
如果您以前没有听说过 BITS,请查看此内容。BITS 主要是为异步文件下载而设计的,但同步工作也非常好(假设您启用了 BITS)。
$url = "http://mirror.internode.on.net/pub/test/10meg.test"
$output = "$PSScriptRoot\10meg.test"
$start_time = Get-Date
Import-Module BitsTransfer
Start-BitsTransfer -Source $url -Destination $output
#OR
Start-BitsTransfer -Source $url -Destination $output -Asynchronous
Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句