使用 Powershell 安装 Anaconda 时显示状态

使用 Powershell 安装 Anaconda 时显示状态

使用 Powershell 安装 Anaconda 时:

正在下载。

Invoke-WebRequest https://repo.anaconda.com/archive/Anaconda3-5.3.0-Windows-x86_64.exe -OutFile "Anaconda3-5.3.0-Windows-x86_64.exe"

当我运行下面的代码时,该过程需要很长时间并且我看不到任何进展。

Start-Process -Wait -FilePath Anaconda3-5.3.0-Windows-x86_64.exe -PassThru -ArgumentList "/InstallationType=JustMe /AddToPath=1 /RegisterPython=0 /S /D=$env:UserProfile\Anaconda3"

输出:

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName

-------  ------    -----      -----     ------     --  -- -----------

     34       3      812       2096       0.02  11828   0 Anaconda3-5.3.0-Windows-x86_64

有没有办法在 Powershell 中显示进度?

答案1

注意:在大多数情况下,使用外部 exe 执行此操作对于 PS 本身来说不是件容易的事。

请参阅此处的类似讨论: https://stackoverflow.com/questions/14739257/display-progress-of-exe-installation-from-powershell

话虽这么说。在 PS 中,wget 只是一个别名,而不是真正的 wget。

Get-Alias -Definition Invoke-WebRequest | Format-Table -AutoSize

CommandType Name                      Version Source
----------- ----                      ------- ------
Alias       curl -> Invoke-WebRequest               
Alias       iwr -> Invoke-WebRequest                
Alias       wget -> Invoke-WebRequest  

# get function / cmdlet details
(Get-Command -Name Invoke-WebRequest).Parameters
Get-help -Name Invoke-WebRequest -Examples
Get-help -Name Invoke-WebRequest -Full
Get-help -Name Invoke-WebRequest -Online  

如果您使用的是真正的 wget,则必须完全限定其 PathTo\wget.exe 的路径。

为了显示进度条,您可以使用 Write-Progress cmdlet。

# get function / cmdlet details
(Get-Command -Name Write-Progress).Parameters
Get-help -Name Write-Progress -Examples
Get-help -Name Write-Progress -Full
Get-help -Name Write-Progress -Online

看:https://technet.microsoft.com/en-us/library/Ff730943.aspx

和这个: https://technet.microsoft.com/en-us/magazine/2008.03.powershell.aspx

在长时间运行的 SharePoint PowerShell 脚本中使用 Write-Progress 的示例

https://social.technet.microsoft.com/wiki/contents/articles/18697.an-example-of-using-write-progress-in-a-long-running-sharepoint-powershell-script.aspx

然而,为了将它用于您想要的目的,您需要一种方法来确定进度条将使用的数学知识,正如您将从上面的文章中看到的那样。

或者,您可以在循环中硬编码一条简单消息,查看下载位置以查看文件是否存在,或者安装过程是否完成,然后退出循环。

相关内容