При установке Anaconda с Powershell:

Загрузка.

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 ответ1

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.

# 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

Пример использования Write-Progress в длительном скрипте SharePoint PowerShell

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

Однако, чтобы использовать его для того, что вам нужно, вам нужен способ определить математику того, что будет использовать индикатор выполнения, как вы увидите из приведенных выше статей.

Или вы можете жестко запрограммировать простое сообщение в цикле, посмотреть на место загрузки, чтобы увидеть, есть ли файл, или если процесс установки завершен, а затем выйти из цикла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .