Zeigt den Status an, wenn Sie Anaconda mit Powershell installieren

364
Clay

Bei der Installation von Anaconda mit Powershell:

Wird heruntergeladen.

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

Wenn ich den folgenden Code ausführen, dauert der Vorgang sehr lange und ich kann keinen Fortschritt sehen.

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" 

Ausgabe:

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 

Gibt es eine Möglichkeit, den Fortschritt in Powershell darzustellen?

0

1 Antwort auf die Frage

1
postanote

Hinweis: In den meisten Fällen ist das für ein externes Exe nichts für PS.

Eine ähnliche Diskussion finden Sie hier: https://stackoverflow.com/questions/14739257/display-progress-of-exe-installation-from-powershell

All das wird gesagt. In PS ist Wget nur ein Alias, nicht das eigentliche 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  

Wenn Sie das echte wget verwenden, müssen Sie den Pfad zu PathTo \ wget.exe vollständig qualifizieren.

Um Fortschrittsbalken anzuzeigen, verwenden Sie das Cmdlet 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 

Siehe: https://technet.microsoft.com/de-de/library/Ff730943.aspx

Und das hier: https://technet.microsoft.com/de-de/magazine/2008.03.powershell.aspx

Ein Beispiel für die Verwendung von Write-Progress in einem SharePoint PowerShell-Skript mit langer Laufzeit

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

Um es für das zu verwenden, was Sie wollen, müssen Sie jedoch die mathematischen Berechnungen der Fortschrittsleiste bestimmen, wie Sie in den obigen Artikeln sehen werden.

Sie können auch eine einfache Nachricht in einer Schleife hart codieren, um den Download-Speicherort zu überprüfen, um zu sehen, ob die Datei vorhanden ist oder ob der Installationsvorgang abgeschlossen ist, und beenden Sie die Schleife.

Ich wusste, dass "wget" in Powershell ein Alias ​​für "Invoke-WebRequest" ist, aber normalerweise verwende ich einfach "wget", da es weniger wortreich ist. Ich habe das OP bearbeitet, um Verwirrung zu vermeiden. Clay vor 6 Jahren 0