gpt4 book ai didi

powershell - 如何在 BITS 下载完成时运行脚本

转载 作者:行者123 更新时间:2023-12-01 12:52:10 25 4
gpt4 key购买 nike

我正在尝试自动下载和安装一个大小为几百 MB 到几 GB 的大型应用程序。我正在研究使用 BITS 和 powershell 异步下载应用程序,然后启动安装程序。

使用已弃用的 bitsadmin 命令,有一个 /SETNOTIFYCMDLINE 选项可以让我在下载完成后链接设置的执行。如何使用 powershell 执行此操作?

这将是我的第一个 powershell 脚本,因此,如果您有指向示例的任何链接,那就太好了。谢谢

最佳答案

我建议使用 BitsTransfer 模块,因为它公开了用于处理 BITS 作业的 native PowerShell 方法。要开始,您只需指示 PowerShell 加载 BITS 模块:

Import-Module BitsTransfer

正在运行 Get-Command查看添加了哪些新的 BITS cmdlet 显示:

PS C:\> Get-Command  *-bits*

CommandType Name
----------- ----
Cmdlet Add-BitsFile
Cmdlet Complete-BitsTransfer
Cmdlet Get-BitsTransfer
Cmdlet Remove-BitsTransfer
Cmdlet Resume-BitsTransfer
Cmdlet Set-BitsTransfer
Cmdlet Start-BitsTransfer
Cmdlet Suspend-BitsTransfer

您最有可能感兴趣的是 Start-BitsTransfer :

Start-BitsTransfer -Source http://localhost/BigInstaller.msi

该 cmdlet 将在屏幕上显示一个进度条并等待下载完成 - 下载完成后才会执行脚本中的下一个命令。

对于异步任务,您可以将-Asynchronous 参数添加到Start-BitsTransfer cmdlet,这将使下载排队并让它在后台运行。您可以使用 Get-BitsTransfer 管理这些下载和 Complete-BitsTransfer cmdlet。

PS C:\> Start-BitsTransfer -Source http://localhost/BigInstaller.msi -Async
JobId DisplayName TransferType JobState
----- ----------- ------------ --------
da7bab7f-fbfd-432d-8... BITS Transfer Download Connecting

PS C:\> Get-BitsTransfer
JobId DisplayName TransferType JobState
----- ----------- ------------ --------
da7bab7f-fbfd-432d-8... BITS Transfer Download Transferred

# finish and jobs that have transferred (e.g. write them to destination on disk)
PS C:\> Get-BitsTransfer | ? {$_.JobState -eq "Transferred"} | Complete-BitsTransfer

关于powershell - 如何在 BITS 下载完成时运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11585231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com