Hoe kan ik de voortgangsweergave van Invoke-WebRequest
verbergen? Ik doe veel opeenvolgende verzoeken en heb mijn eigen Write-Progress
-scherm dat ik gebruik, dus ik hoef niet de ingebouwde er elke keer onder te laten verschijnen.
Ik gebruik de mshtml-resultaten (het IE COM-object) die automatisch zijn gemaakt op basis van het resultaat van Invoke-WebRequest
, dus ik kan niet overschakelen naar een WebClient
of zoiets, tenzij iemand instructies geeft over hoe je een mshtml-object van een WebClient-verzoek kunt krijgen.
Antwoord 1, autoriteit 100%
Gebruik de $progressPreference-variabele. Het zou standaard de waarde ‘Doorgaan’ moeten hebben, tenzij je het ergens anders hebt bewerkt, wat Powershell vertelt om de voortgangsbalk weer te geven. Omdat je zei dat je je eigen aangepaste voortgangsweergaven hebt, zou ik deze onmiddellijk resetten nadat de cmdlet is uitgevoerd. Bijvoorbeeld:
$ProgressPreference = 'SilentlyContinue' # Subsequent calls do not display UI.
Invoke-WebRequest ...
$ProgressPreference = 'Continue' # Subsequent calls do display UI.
Write-Progress ...
Meer informatie over voorkeursvariabelen op about_preference_variables. Hier is de invoer voor $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.