Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hide progress of Invoke-WebRequest

How can I hide the progress display of Invoke-WebRequest? I do a lot of successive requests and have my own Write-Progress display that I use, so I don't need the built-in one popping up underneath it every time.

I use the mshtml results (the IE COM object) that are created from the result of Invoke-WebRequest automatically, so I can't switch to a WebClient or something like that, unless someone provides instructions on how to get an mshtml object from a WebClient request.

like image 519
qJake Avatar asked Sep 12 '13 17:09

qJake


1 Answers

Use the $progressPreference variable. It should have a value of 'Continue' by default unless you've edited it elsewhere, which tells Powershell to display the progress bar. Since you mentioned that you have your own custom progress displays, I would reset it immediately after the cmdlet is executed. For example:

$ProgressPreference = 'SilentlyContinue'    # Subsequent calls do not display UI. Invoke-WebRequest ... $ProgressPreference = 'Continue'            # Subsequent calls do display UI. Write-Progress ... 

More info on preference variables at about_preference_variables. Here's the entry for $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. 
like image 56
Anthony Neace Avatar answered Sep 23 '22 06:09

Anthony Neace