Показать статус при установке Anaconda с Powershell

255
Clay

При установке 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?

0

1 ответ на вопрос

1
postanote

Примечание: в большинстве случаев, делать это с внешним 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

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

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

I knew `wget` in powershell is an alias for `Invoke-WebRequest`, but I usually use just type `wget` as it is less verbose. I have edited the OP to avoid confusion. Clay 5 лет назад 0