Write-Progress
Visualizza una barra di stato all'interno di una finestra dei comandi di PowerShell.
Sintassi
Write-Progress
[-Activity] <String>
[[-Status] <String>]
[[-Id] <Int32>]
[-PercentComplete <Int32>]
[-SecondsRemaining <Int32>]
[-CurrentOperation <String>]
[-ParentId <Int32>]
[-Completed]
[-SourceId <Int32>]
[<CommonParameters>]
Descrizione
Il Write-Progress
cmdlet visualizza una barra di stato in una finestra di comando Windows PowerShell che illustra lo stato di un comando o uno script in esecuzione.
È possibile selezionare i singoli indicatori e il testo visualizzato sopra e sotto l'indicatore di stato.
Esempio
Esempio 1: Visualizzare lo stato di avanzamento di un ciclo For
for ($i = 1; $i -le 100; $i++ )
{
Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i;
}
Questo comando visualizza lo stato di avanzamento di un ciclo For che conta da 1 a 100.
Il Write-Progress
cmdlet include un'intestazione Activity
della barra di stato , una riga di stato e la variabile (il contatore nel ciclo For), che indica la relativa completezza $i
dell'attività.
Esempio 2: Visualizzare lo stato di avanzamento dei cicli Annidati per i cicli
for($I = 1; $I -lt 101; $I++ )
{
Write-Progress -Activity Updating -Status 'Progress->' -PercentComplete $I -CurrentOperation OuterLoop
for($j = 1; $j -lt 101; $j++ )
{
Write-Progress -Id 1 -Activity Updating -Status 'Progress' -PercentComplete $j -CurrentOperation InnerLoop
}
}
Updating
Progress ->
[ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo]
OuterLoop
Updating
Progress
[oooooooooooooooooo ]
InnerLoop
Questo esempio visualizza lo stato di avanzamento di due cicli For annidati, ciascuno dei quali è rappresentato da un indicatore di stato.
Il Write-Progress
comando per la seconda barra di stato include il parametro Id che lo distingue dalla prima barra di stato.
Senza il parametro Id , le barre di stato verranno sovrapposte tra loro anziché essere visualizzate una sotto l'altra.
Esempio 3: visualizzare lo stato di avanzamento durante la ricerca di una stringa
# Use Get-EventLog to get the events in the System log and store them in the $Events variable.
$Events = Get-EventLog -LogName system
# Pipe the events to the ForEach-Object cmdlet.
$Events | ForEach-Object -Begin {
# In the Begin block, use Clear-Host to clear the screen.
Clear-Host
# Set the $i counter variable to zero.
$i = 0
# Set the $out variable to a empty string.
$out = ""
} -Process {
# In the Process script block search the message property of each incoming object for "bios".
if($_.message -like "*bios*")
{
# Append the matching message to the out variable.
$out=$out + $_.Message
}
# Increment the $i counter variable which is used to create the progress bar.
$i = $i+1
# Use Write-Progress to output a progress bar.
# The Activity and Status parameters create the first and second lines of the progress bar heading, respectively.
Write-Progress -Activity "Searching Events" -Status "Progress:" -PercentComplete ($i/$Events.count*100)
} -End {
# Display the matching messages using the out variable.
$out
}
Questo comando visualizza lo stato di avanzamento di un comando per individuare la stringa "bios" nel registro eventi di sistema.
Il valore del parametro PercentComplete viene calcolato suddividendo il numero di eventi elaborati $I
dal numero totale di eventi recuperati $Events.count
e moltiplicando tale risultato per 100.
Parametri
-Activity
Specifica la prima riga di testo dell'intestazione sopra la barra di stato. Il testo descrive l'attività di cui è segnalato lo stato di avanzamento.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Completed
Indica se l'indicatore di stato è visibile.
Se questo parametro viene omesso, Write-Progress
visualizza le informazioni sullo stato di avanzamento.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CurrentOperation
Specifica la riga di testo sotto l'indicatore di stato. Il testo descrive l'operazione attualmente in corso.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Specifica un ID che distingue ogni indicatore di stato dagli altri. Usare questo parametro quando occorre creare più indicatori di stato in un unico comando. Se gli indicatori di stato non hanno ID diversi, vengono sovrapposti invece di essere visualizzati in serie.
Type: | Int32 |
Position: | 3 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ParentId
Specifica l'attività padre dell'attività corrente. Usare il valore -1 se l'attività corrente non ha un'attività padre.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PercentComplete
Specifica la percentuale di completamento dell'attività. Usare il valore -1 se la percentuale di completamento è sconosciuta o non applicabile.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecondsRemaining
Specifica il numero previsto di secondi rimanenti per il completamento dell'attività. Usare il valore -1 se il numero di secondi rimanenti è sconosciuto o non applicabile.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SourceId
Specifica l'origine del record.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Status
Specifica la seconda riga di testo dell'intestazione sopra la barra di stato. Il testo descrive lo stato corrente dell'attività.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
None
Non è possibile inviare input tramite pipe a questo cmdlet.
Output
None
Write-Progress
non genera alcun output.
Note
Se la barra di stato non viene visualizzata, controllare il valore della $ProgressPreference
variabile. Se il valore è impostato su SilentlyContinue, l'indicatore di stato non viene visualizzato. Per altre informazioni sulle preferenze di Windows PowerShell, vedere about_Preference_Variables.
I parametri del cmdlet corrispondono alle proprietà della classe System.Management.Automation.ProgressRecord . Per altre informazioni, vedere ProgressRecord Class in MSDN Library.