web-dev-qa-db-fra.com

Masquer la progression d'Invoke-WebRequest

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.

48
qJake

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.
68
Anthony Neace