Est-il possible de suivre la progression du téléchargement à l'aide d'un objet WebClient dans powershell?
Je suis le téléchargement d'un fichier à l'aide d'un simple ligne comme ceci:
$webclient = New-Object -TypeName System.Net.WebClient
$webclient.DownloadFile("https://www.example.com/file", "C:/Local/Path/file")
Le problème est que je veux afficher un message à l'utilisateur, alors que c'est le téléchargement à l'aide d'une fenêtre pop-up, ou à l'aide d'une barre de progression dans la coquille. Est-il possible de faire un pop up qui disparaît lorsque le téléchargement est terminé, ou une barre de progression qui surveille la progression du téléchargement?
- Si vous pouvez mettre à niveau vers la version 3, vous pouvez utiliser la commande interne
Invoke-WebRequest https://www.site.com/file -OutFile C:/Local/Path/file
et il affiche des progrès automatiquement.
Vous devez vous connecter pour publier un commentaire.
Pour afficher une barre de progression de téléchargement de fichiers découvrez Jason Niver du Blog:
Téléchargement de fichiers sur internet en Power Shell (avec cours)
Fondamentalement, vous pouvez créer une fonction qui toujours utiliser le client web de la fonctionnalité, mais comprend un moyen de capturer l'état. Ensuite, vous pouvez afficher le statut de l'utilisateur à l'aide de la
Écrivez-les Progrès de la Puissance du shell fonctionnalité.
Ensuite vous suffit d'appeler la fonction:
Aussi, voici quelques autres en Écriture Progrès exemples.
Écrivez-Le Progrès
write-progress
; cependant, je ne pense pas qu'il existe un moyen d'incrémenter un compteur comme ça pour montrer la progression du téléchargement.Dans la V2, vous pouvez simplement utiliser le BitsTransfer module par exemple:
$urls | % { $name = ([uri]$_).Segments[-1]; Start-BitsTransfer $_ -DisplayName $name }