Ricerca…


introduzione

Una barra di avanzamento può essere utilizzata per mostrare che qualcosa si trova in un processo. È una funzionalità che consente di risparmiare tempo e di essere chiari. Le barre di avanzamento sono incredibilmente utili durante il debug per capire quale parte dello script è in esecuzione, e sono soddisfacenti per le persone che eseguono script per tenere traccia di ciò che sta accadendo. È comune visualizzare alcuni tipi di progresso quando uno script richiede molto tempo per essere completato. Quando un utente lancia lo script e non accade nulla, uno inizia a chiedersi se lo script sia stato lanciato correttamente.

Semplice utilizzo della barra di avanzamento

1..100 | ForEach-Object {
        Write-Progress -Activity "Copying files" -Status "$_ %" -Id 1 -PercentComplete $_ -CurrentOperation "Copying file file_name_$_.txt"
        Start-Sleep -Milliseconds 500    # sleep simulates working code, replace this line with your executive code (i.e. file copying)
    }

Si prega di notare che per brevità questo esempio non contiene alcun codice esecutivo (simulato con Start-Sleep ). Tuttavia è possibile eseguirlo direttamente così com'è e modificarlo e giocarci.

Ecco come appaiono i risultati nella console PS: Barra di avanzamento singola della console PowerShell

Ecco come appare il risultato in PS ISE: Barra di avanzamento singola Powershell ISE

Utilizzo della barra di avanzamento interna

1..10 | foreach-object {
        $fileName = "file_name_$_.txt"
        Write-Progress -Activity "Copying files" -Status "$($_*10) %" -Id 1 -PercentComplete ($_*10) -CurrentOperation "Copying file $fileName"
            
        1..100 | foreach-object {
            Write-Progress -Activity "Copying contents of the file $fileName" -Status "$_ %" -Id 2 -ParentId 1 -PercentComplete $_ -CurrentOperation "Copying $_. line"
            
            Start-Sleep -Milliseconds 20 # sleep simulates working code, replace this line with your executive code (i.e. file copying)
        }

        Start-Sleep -Milliseconds 500 # sleep simulates working code, replace this line with your executive code (i.e. file search)

   }

Si prega di notare che per brevità questo esempio non contiene alcun codice esecutivo (simulato con Start-Sleep ). Tuttavia è possibile eseguirlo direttamente così com'è e modificarlo e giocarci.

Ecco come appaiono i risultati nella console PS: Barra di avanzamento interna della consolle PowerShell

Ecco come appare il risultato in PS ISE: Barra di avanzamento interna Powershell ISE



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow