Comment masquer l'affichage de la progression de Invoke-WebRequest
? Je fais beaucoup de demandes successives et j'ai ma propre Write-Progress
affichage que j'utilise, donc je n'ai pas besoin que celui intégré apparaisse en dessous à chaque fois.
J'utilise les résultats mshtml (l'objet IE COM) créés à partir du résultat de Invoke-WebRequest
automatiquement, donc je ne peux pas basculer vers un WebClient
ou quelque chose comme ça, à moins que quelqu'un ne fournisse des instructions sur la façon d'obtenir un objet mshtml à partir d'une demande WebClient.
Utilisez la variable $ progressPreference. Il devrait avoir la valeur 'Continue' par défaut, sauf si vous l'avez modifié ailleurs, ce qui indique à Powershell d'afficher la barre de progression. Comme vous avez mentionné que vous disposiez de vos propres écrans de progression personnalisés, je les réinitialiserais immédiatement après l'exécution de l'applet de commande. Par exemple:
$progressPreference = 'silentlyContinue' # Subsequent calls do not display UI.
Invoke-WebRequest ...
$progressPreference = 'Continue' # Subsequent calls do display UI.
Write-Progress ...
Plus d'informations sur les variables de préférence sur about_preference_variables . Voici l'entrée pour $ ProgressPreference:
$ProgressPreference
-------------------
Determines how Windows PowerShell responds to progress updates
generated by a script, cmdlet or provider, such as the progress bars
generated by the Write-Progress cmdlet. The Write-Progress cmdlet
creates progress bars that depict the status of a command.
Valid values:
Stop: Does not display the progress bar. Instead,
it displays an error message and stops executing.
Inquire: Does not display the progress bar. Prompts
for permission to continue. If you reply
with Y or A, it displays the progress bar.
Continue: Displays the progress bar and continues with
(Default) execution.
SilentlyContinue: Executes the command, but does not display
the progress bar.