Suche…


Einführung

Ein Fortschrittsbalken kann verwendet werden, um anzuzeigen, dass sich etwas in einem Prozess befindet. Es ist eine zeitsparende und glatte Funktion, die man haben sollte. Fortschrittsbalken sind beim Debuggen unglaublich nützlich, um herauszufinden, welcher Teil des Skripts ausgeführt wird, und sie sind zufriedenstellend für die Personen, die Skripts ausführen, um zu verfolgen, was passiert. Es ist üblich, einen Fortschritt anzuzeigen, wenn ein Skript lange dauert. Wenn ein Benutzer das Skript startet und nichts passiert, fragt man sich, ob das Skript ordnungsgemäß gestartet wurde.

Einfache Verwendung der Fortschrittsleiste

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

Bitte beachten Sie, dass dieses Beispiel der Kürze halber keinen Code enthält (mit Start-Sleep simuliert). Es ist jedoch möglich, es direkt als solches auszuführen und dann zu modifizieren und damit zu spielen.

So sieht das Ergebnis in der PS-Konsole aus: Einzelne Fortschrittsleiste der Powershell-Konsole

So sieht das Ergebnis in PS ISE aus: Powershell ISE-Fortschrittsbalken

Verwendung des inneren Fortschrittsbalkens

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)

   }

Bitte beachten Sie, dass dieses Beispiel der Kürze halber keinen Code enthält (mit Start-Sleep simuliert). Es ist jedoch möglich, es direkt als solches auszuführen und dann zu modifizieren und damit zu spielen.

So sieht das Ergebnis in der PS-Konsole aus: Innere Fortschrittsleiste der Powershell-Konsole

So sieht das Ergebnis in PS ISE aus: Powershell-ISE-Fortschrittsbalken



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow