[玩转系统] 在 PowerShell 中从 URL 下载文件 [4 种方法]
作者:精品下载站 日期:2024-12-14 05:27:44 浏览:14 分类:玩电脑
在 PowerShell 中从 URL 下载文件 [4 种方法]
使用 Invoke-WebRequest
Cmdlet
使用 Invoke-WebRequest
cmdlet 将指定文件从指定 URL 下载到计算机中的本地路径。
使用 Invoke-WebRequest Cmdlet:
$URL = "https://github.com/PowerShell/PowerShell"
$LocalPath = "E:\Test\README.md"
Invoke-WebRequest -Uri $URL -OutFile $LocalPath
首先,我们创建了两个名为 $URL
和 $LocalPath
的变量,其中包含 URL 和计算机的本地路径。请注意,在 PowerShell 中,变量以 $
符号为前缀。接下来,我们使用 Invoke-WebRequest
cmdlet 从 URL 下载文件。这里,文件可以是图像、文本、html、markdown 或任何其他文件。
我们使用 Invoke-WebRequest cmdlet 从 Internet 上的指定网页获取内容。此 cmdlet 将 HTTP
、HTTPS
、FILE
和 FTP
请求发送到 Web 服务或网页。然后,它解析来自网页的响应并返回链接、图像、文件、表单和其他重要 HTML 元素的集合。要使用此 cmdlet,您必须拥有 PowerShell 版本 3.0 或更高版本。
-URI
参数用于指定我们向其发送 Web 请求的互联网资源的统一资源标识符 (URI)。此参数支持 HTTP
、HTTPS
、FILE
和 FTP
值。使用 Inovke-WebRequest
cmdlet 需要此参数的值,而我们可以省略参数名称 -URI
。请参阅以下示例。
使用 Invoke-WebRequest Cmdlet:
$URL = "https://github.com/PowerShell/PowerShell"
$LocalPath = "E:\Test\README.md"
Invoke-WebRequest $URL -OutFile $LocalPath
接下来,我们使用 -OutFile
cmdlet 和 $LocalPath
。该cmdlet用于指定输出文件;我们可以在此处提及路径和带有扩展名的文件名。 -OutFile
cmdlet 保存给定输出文件的响应正文。如果我们不指定路径,输出文件将保存在当前目录中。
我们还有一个 Invoke-WebRequest
cmdlet 的别名,即 iwr
,我们可以按如下方式使用它:
使用 Invoke-WebRequest Cmdlet:
$URL = "https://github.com/PowerShell/PowerShell"
$LocalPath = "E:\Test\README.md"
iwr -Uri $URL -OutFile $LocalPath
使用 System.Net.WebClient 类
使用 System.Net.WebClient
类将文件从指定的 URL 下载到计算机中的本地路径。
使用 System.Net.WebClient:
$URL = "https://github.com/PowerShell/PowerShell"
$LocalPath = "E:\Test\README.md"
$webClient = New-Object System.Net.WebClient
$webClient.DownloadFile($URL, $LocalPath)
创建并初始化 $URL
和 $LocalPath
变量后,我们使用 New-Object
cmdlet 创建 WebClient 的对象
类并将其引用保存在 $webClient
变量中。 System.Net.WebClient 为我们提供了常用方法,可用于从统一资源标识符 (URI) 标识的指定资源发送或接收数据。
WebClient
类使用 WebRequest 类提供对给定资源的访问。请注意,WebClient
对象(也称为 WebClient
实例)可以通过使用 WebRequest.RegisterPrefix 方法注册的任何 WebRequest
后代检索数据。默认情况下,支持以 http:
、ftp:
、https:
和 file:
方案标识符开头的 URI通过 .NET 框架。
最后,我们使用WebClient
类的.DownloadFile()
方法将文件从指定的URL下载到本地路径。此方法采用两个参数,一个地址
和一个文件名
,它们存储在$URL
和$LocalPath
中变量。该方法根据不同的情况生成不同的异常:
-
如果
filename
参数或address
(URI) 参数为.DownloadFile()
方法会生成ArgumentNullException
异常代码>空。当将null
引用传递给不是有效参数的方法时,将引发ArgumentNullException
。 如果同时在多个线程上调用此方法,将会生成
NotSupportedException
。由于不同的原因,我们会得到
WebException
:- 如果
地址
无效或者统一资源标识符是由BaseAddress组合而成。
- 如果
或者
- 给定的
文件名
为空、null
或不存在
或者
- 我们在下载数据时遇到错误。
不建议使用WebClient
进行新开发。相反,我们可以使用 System.Net.Http.HttpClient 类。
使用 curl
实用程序
使用 curl
实用程序将文件从指定 URL 下载到计算机中的本地路径。
使用卷曲实用程序:
$URL = "https://github.com/PowerShell/PowerShell"
$LocalPath = "E:\Test\README.md"
& curl $URL -OutFile $LocalPath
在上一节中,我们了解了 $URL
、$LocalPath
和 -OutFile
。在这里,我们使用 curl
实用程序从网页下载文件。 &
运算符用于在当前 shell 中运行 curl
命令。
如果您的计算机上未安装curl
,则必须先安装它,然后使用它下载文件。
使用 Start-BitsTransfer
Cmdlet
使用 Start-BitsTransfer
cmdlet 将文件从指定 URL 下载到计算机中的本地路径。
使用 Start-BitsTransfer Cmdlet:
$URL = "https://download.microsoft.com/download/8/8/0/880BCA75-79DD-466A-927D-1ABF1F5454B0/PBIDesktopSetup.exe"
$LocalPath = "E:\Test\PBIDesktopSetup.exe"
$startTime = Get-Date
Import-Module BitsTransfer
Start-BitsTransfer -Source $URL -Destination $LocalPath
在上面的代码中,我们导入了 BitsTransfer 模块并使用 Start-BitsTransfer cmdlet 将指定文件从源传输到目标。我们还使用 Get-Date
cmdlet 记录了开始时间,并将其存储在 $startTime
变量中,我们可以使用该变量将当前时间与 $进行比较startTime
来确定完成此传输需要多长时间。
Start-BitsTransfer cmdlet 用于创建 BITS(后台智能传输服务)传输作业,以在服务器和客户端计算机之间传输一个或多个文件。此 cmdlet 帮助我们将多个文件从指定的服务器下载到给定的客户端计算机,但它不允许我们将多个文件从客户端计算机上传到服务器。如果需要上传多个文件,我们可以使用 Import-Csv 将输出通过管道传输到 Add-BitsFile cmdlet 或考虑使用压缩文件 (.zip
)或压缩文件(.cab
)。
BITS 是操作系统的组件,可通过网络可靠、可扩展且高效地传输大型文件。我们经常使用它在后台传输文件,这样即使传输被中断或系统重新启动,我们也可以暂停、恢复和重新启动传输。我们在使用 Start-BitsTransfer
cmdlet 时使用 -Source
和 -Destination
参数指定文件的源和目标。我们还可以使用各种传输选项,例如传输类型和优先级等。
现在,我们已经了解了使用 PowerShell 从网页下载文件的各种方法,因此有必要了解每种方法的优缺点。
比较上述所有解决方案
Invoke-WebRequest优点:由于语法简单,易于使用,可以处理大文件,并用于从网站检索数据。
缺点:它不为我们提供控制下载过程的高级选项。
优点:这是一种用于下载文件的传统方法,为我们提供了控制下载过程的基本选项,例如代理和超时设置。
缺点: 它不像 `Invoke-WebRequest` 那样灵活。
优点:它是最简单、最流行的数据传输命令行工具,支持不同的协议(FTP、HTTP 等),并用于执行复杂的操作,例如文件上传。
缺点:您可能必须在计算机上安装此实用程序。 PowerShell 用户可能需要更加熟悉其语法。
优点:它是 BITS 的一部分,在下载文件时提供高级选项,例如暂停/恢复/重新启动下载。
缺点:它不如 System.Net.WebClient 类和 Invoke-WebRequest cmdlet 常用。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag