Visualizza un indicatore di stato in una finestra dei comandi di Windows PowerShell.

Sintassi

Write-Progress [-Activity] <string> [-Status] <string> [[-Id] <int>] [-Completed] [-CurrentOperation <string>] [-ParentId <int>] [-PercentComplete <int>] [-SecondsRemaining <int>] [-SourceId <int>] [<CommonParameters>]

Descrizione

Il cmdlet Write-Progress visualizza un indicatore di stato in una finestra dei comandi di Windows PowerShell che rappresenta lo stato di uno script o un comando in esecuzione. È possibile selezionare gli indicatori riflessi dalla barra e il testo visualizzato sopra e sotto l'indicatore di stato.

Parametri

-Activity <string>

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.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Completed

Indica se l'indicatore di stato è visibile. Se viene omesso questo parametro, Write-Progress visualizza informazione sullo stato di avanzamento.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-CurrentOperation <string>

Specifica la riga di testo sotto l'indicatore di stato. Questo testo descrive l'operazione attualmente in corso.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Id <int>

Specifica un ID che distingue ciascun indicatore di stato dagli altri. Utilizzare questo parametro quando si crea più di un indicatore di stato in un solo comando. Se gli indicatori di stato non dispongono di ID diversi, vengono sovrapposti anziché essere visualizzati in serie.

Obbligatorio?

false

Posizione?

3

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-ParentId <int>

Identifica l'attività padre dell'attività corrente. Utilizzare il valore -1 se per l'attività corrente non è disponibile un'attività padre.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-PercentComplete <int>

Specifica la percentuale di attività completata. Utilizzare il valore -1 se la percentuale di completamento è sconosciuta o non applicabile.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-SecondsRemaining <int>

Specifica il numero previsto di secondi che mancano al completamento dell'attività. Utilizzare il valore -1 se il numero di secondi rimanenti è sconosciuto o non applicabile.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-SourceId <int>

Identifica l'origine del record.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Status <string>

Specifica la seconda riga di testo nell'intestazione sopra la barra di stato. Questo testo descrive lo stato corrente dell'attività.

Obbligatorio?

true

Posizione?

2

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

Nessuno

Non è possibile reindirizzare l'input a questo cmdlet.

Output

Nessuno

Write-Progress non genera alcun output.

Note

Se non viene visualizzato l'indicatore di stato, verificare il valore della variabile $ProgressPreference. 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 ProgressRecord (System.Management.Automation.ProgressRecord). Per ulteriori informazione, vedere l'argomento ProgressRecord in Windows PowerShell Software Development Kit (SDK).

Esempio 1

C:\PS>for ($i = 1; $i -lt 101; $i++ ) 
{for ($j=0;$j -lt 10000;$j++) {} write-progress -activity "Search in Progress" -status "% Complete:" -percentcomplete $i;}

Descrizione
-----------
In questo comando verrà visualizzato lo stato di avanzamento dei due cicli For nidificati. Il conteggio del primo ciclo arriva a 100. Per ogni incremento di tale ciclo, il conteggio del secondo ciclo arriva a 10000.
Il comando Write-Progress include un'intestazione di barra di stato ("activity"), una riga dello stato e la variabile $i (contatore nel ciclo For), che indica la relativa completezza dell'attività.






Esempio 2

C:\PS>for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress-> -percentcomplete $i -currentOperation OuterLoop} for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress -percentcomplete $i -id  1 -currentOperation InnerLoop}

Updating 
   progress ->
   [oooooooooooooooooo                                                   ]

   OutsideLoop

Updating
  progress  
  [oooooooooooooooooo                                                    ]

  InnerLoop

Descrizione
-----------
In questo esempio viene visualizzato lo stato di avanzamento di due cicli For nidificati, ciascuno dei quali è rappresentato da un indicatore di stato.

Il comando Write-Progress per il secondo indicatore di stato include il parametro Id che lo distingue dal primo indicatore di stato. Senza il parametro Id, gli indicatori di stato verrebbero sovrapposti l'uno all'altro anziché essere visualizzati uno sotto l'altro.






Esempio 3

C:\PS>$events = get-eventlog -logname system

C:\PS> $events | foreach-object -begin {clear-host;$i=0;$out=""} `
-process {if($_.message -like "*bios*") {$out=$out + $_.Message};
$i = $i+1;`
write-progress -activity "Searching Events" `
-status "Progress:" -percentcomplete ($i/$events.count*100)} `
-end {$out}

Descrizione
-----------
Questo comando visualizza lo stato di avanzamento di un comando per trovare la stringa "bios" nel registro eventi del sistema. 

Nella prima riga del comando, il cmdlet Get-EventLog ottiene gli eventi nel registro di sistema e li archivia nella variabile $events. 

Nella seconda riga gli eventi verranno reindirizzati al cmdlet ForEach-Object. Prima dell'inizio dell'elaborazione, verrà utilizzato il cmdlet Clear-Host per cancellare il contenuto dello schermo, la variabile contatore $i verrà impostata su zero e la variabile di output $out verrà impostata su una stringa vuota. 


Nella terza riga che è il blocco di script Process del cmdlet ForEach-Object, il cmdlet cerca "bios" nella proprietà del messaggio di ciascun oggetto in ingresso. Se viene trovata la stringa, il messaggio viene aggiunto a $out. 

Nella quarta riga, la variabile contatore $i verrà incrementata in modo da registrare che è stato esaminato un altro evento. 

Nella quinta riga viene utilizzato il cmdlet Write-Progress con i valori per i campi di testo Activity e Status che creano rispettivamente la prima e la seconda riga dell'intestazione dell'indicatore di stato. Il valore del parametro PercentComplete viene calcolato dividendo il numero di eventi elaborati ($i) per il numero complessivo di eventi recuperati ($events.count) e moltiplicando quindi tale risultato per 100. 

Nell'ultima riga, il parametro End del cmdlet ForEach-Object viene utilizzato per visualizzare i messaggi archiviati nella variabile $out.






Vedere anche




Argomenti della Guida