Buscar..


Introducción

Se puede usar una barra de progreso para mostrar que algo se encuentra en un proceso. Es una característica que le permite ahorrar tiempo y es elegante. Las barras de progreso son increíblemente útiles para depurar qué parte de la secuencia de comandos se está ejecutando, y son satisfactorias para las personas que ejecutan secuencias de comandos para realizar un seguimiento de lo que está sucediendo. Es común mostrar algún tipo de progreso cuando una secuencia de comandos tarda mucho tiempo en completarse. Cuando un usuario inicia la secuencia de comandos y no sucede nada, uno comienza a preguntarse si la secuencia de comandos se inició correctamente.

Uso simple de la barra de progreso.

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)
    }

Tenga en cuenta que, por brevedad, este ejemplo no contiene ningún código ejecutivo (simulado con Start-Sleep ). Sin embargo, es posible ejecutarlo directamente como está y luego modificarlo y jugar con él.

Así es como se ve el resultado en la consola PS: Consola Powershell barra de progreso simple

Así es como se ve el resultado en PS ISE: Barra de progreso única Powershell ISE

Uso de la barra de progreso interior

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)

   }

Tenga en cuenta que, por brevedad, este ejemplo no contiene ningún código ejecutivo (simulado con Start-Sleep ). Sin embargo, es posible ejecutarlo directamente como está y luego modificarlo y jugar con él.

Así es como se ve el resultado en la consola PS: Barra de progreso interna de la consola Powershell

Así es como se ve el resultado en PS ISE: Barra de progreso interior ISE Powershell



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow