PowerShell Start-BitsTransfer
最后修改:2025 年 2 月 15 日
本文介绍PowerShell中的Start-BitsTransfer
cmdlet。它利用Windows BITS服务进行后台文件传输。BITS代表Background Intelligent Transfer Service(后台智能传输服务)。该服务可优化带宽使用并优雅地处理网络中断。
BITS基础知识
BITS是用于异步文件传输的Windows服务。它会自动适应可用带宽,并在网络中断时暂停。连接恢复后,传输将继续。BITS非常适合大文件传输或不可靠的网络。该服务以低优先级运行,以避免影响其他网络应用程序。
基本文件下载
Start-BitsTransfer
最简单的用法是从URL下载文件。指定源URL和目标路径。传输在后台运行。您可以使用Get-BitsTransfer
监控进度。该cmdlet返回一个BITS作业对象。
Start-BitsTransfer -Source "https://example.com/largefile.zip" -Destination "C:\Downloads\"
此命令将largefile.zip下载到Downloads文件夹。即使PowerShell会话结束,传输也会继续。您稍后可以使用Get-BitsTransfer
检查状态。
带进度显示的下载
要监控传输进度,请使用-DisplayName
和-Asynchronous
参数。这会在BITS传输队列中创建一个可见的作业。您可以在Windows BITS管理控制台中查看进度。-Priority
参数用于调整传输优先级。
$job = Start-BitsTransfer -Source "https://example.com/update.exe" ` -Destination "C:\Updates\" -DisplayName "Critical Update" ` -Priority High -Asynchronous
此命令以高优先级和描述性名称启动传输。$job
变量存储传输对象。使用它来检查状态或修改传输。
使用BITS上传文件
Start-BitsTransfer
也支持将文件上传到Web服务器。指定本地文件路径和目标URL。服务器必须支持BITS上传。在需要时可以提供身份验证凭据。上传也具有与下载相同的可靠性功能。
Start-BitsTransfer -Source "C:\Reports\Q1.pdf" ` -Destination "https://server/reports/upload.php" ` -Credential (Get-Credential)
此命令将Q1.pdf上传到Web服务器。-Credential
参数会提示输入身份验证信息。传输在失败时会自动重试。
多文件传输
您可以在一个BITS作业中传输多个文件。提供源路径和目标路径的数组。这对于相关文件来说非常高效。作业中的所有文件共享相同的传输设置。当所有文件传输完成时,作业即完成。
$sources = @("https://site.com/file1.txt", "https://site.com/file2.txt") $destinations = @("C:\Data\file1.txt", "C:\Data\file2.txt") Start-BitsTransfer -Source $sources -Destination $destinations
此命令同时传输两个文件。源和目标数组必须具有匹配的索引。BITS会高效地管理并行传输。
计划传输与重试选项
BITS传输可以安排在特定时间进行。使用-RetryTimeout
和-RetryInterval
来控制重试行为。这对于对时间敏感的传输很有用。传输将在指定的时间范围内尝试完成。
Start-BitsTransfer -Source "https://backup.com/nightly.db" ` -Destination "C:\Backups\" -RetryTimeout 180 -RetryInterval 30 ` -ScheduledStartTime "22:00"
此命令安排在晚上10点进行备份传输。如果失败,它将每30分钟重试一次,持续3小时。传输不会影响白天网络性能。
来源
在本文中,我们介绍了PowerShell中的Start-BitsTransfer cmdlet。
作者
列出 所有 PowerShell 教程。