Write-Progress
Visualizza una barra di stato all'interno di una finestra di comando di PowerShell.
Sintassi
Default (Impostazione predefinita)
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 un indicatore di stato in una finestra di comando di Windows PowerShell che illustra lo stato di un comando o di uno script in esecuzione.
È possibile selezionare gli indicatori che la barra riflette 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 Activitydella barra di stato, una riga di stato e la variabile $i (il contatore nel ciclo For), che indica la completezza relativa dell'attività.
Esempio 2: Visualizzare lo stato di avanzamento dei cicli For annidati
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
In questo esempio viene visualizzato lo stato di avanzamento di due cicli For annidati, ognuno dei quali è rappresentato da un indicatore di stato.
Il comando Write-Progress 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 l'una all'altra 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 trovare la stringa "bios" nel registro eventi di sistema.
Il valore del parametro PercentComplete viene calcolato dividendo il numero di eventi elaborati $I dal numero totale di eventi recuperati $Events.count e moltiplicando il risultato per 100.
Parametri
-Activity
Specifica la prima riga di testo nell'intestazione sopra la barra di stato. Questo testo descrive l'attività di cui viene segnalato lo stato di avanzamento.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 1 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Completed
Indica se la barra di stato è visibile.
Se questo parametro viene omesso, Write-Progress visualizza informazioni sullo stato di avanzamento.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-CurrentOperation
Specifica la riga di testo sotto l'indicatore di stato. Questo testo descrive l'operazione attualmente in corso.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Id
Specifica un ID che distingue ogni indicatore di stato dagli altri. Usare questo parametro quando si creano più barre di stato in un singolo comando. Se le barre di avanzamento non hanno ID diversi, vengono sovrapposte invece di essere visualizzate in serie.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 3 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-ParentId
Specifica l'attività padre dell'attività corrente. Utilizzare il valore -1 se l'attività corrente non dispone di un'attività padre.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-PercentComplete
Specifica la percentuale di completamento dell'attività. Utilizzare il valore -1 se la percentuale di completamento è sconosciuta o non applicabile.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-SecondsRemaining
Specifica il numero previsto di secondi rimanenti fino al completamento dell'attività. Utilizzare il valore -1 se il numero di secondi rimanenti è sconosciuto o non applicabile.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-SourceId
Specifica l'origine del record.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Status
Specifica la seconda riga di testo nell'intestazione sopra la barra di stato. Questo testo descrive lo stato corrente dell'attività.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 2 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
None
Non è possibile inviare tramite pipe l'input a questo cmdlet.
Output
None
Write-Progress non genera alcun output.
Note
Se la barra di avanzamento non viene visualizzata, controllare il $ProgressPreference valore della variabile. Se il valore è impostato su SilentlyContinue, l'indicatore di stato non viene visualizzato. Per ulteriori informazioni sulle preferenze di Windows PowerShell, vedere about_Preference_Variables.
I parametri del cmdlet corrispondono alle proprietà della classe System.Management.Automation.ProgressRecord. Per ulteriori informazioni, vedere Classe ProgressRecord in MSDN Library.