Szukaj…


Wprowadzenie

Pasek postępu może być używany do pokazania, że coś jest w trakcie procesu. Jest to oszczędzająca czas i zręczna funkcja, którą powinieneś mieć. Paski postępu są niezwykle przydatne podczas debugowania, aby dowiedzieć się, która część skryptu jest wykonywana, i satysfakcjonują osoby uruchamiające skrypty, aby śledzić, co się dzieje. Zwykle wyświetla się pewien postęp, gdy skrypt zajmuje dużo czasu. Gdy użytkownik uruchamia skrypt i nic się nie dzieje, zaczyna się zastanawiać, czy skrypt został uruchomiony poprawnie.

Proste użycie paska postępu

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

Należy pamiętać, że dla zwięzłości ten przykład nie zawiera kodu wykonawczego (symulowanego za pomocą Start-Sleep ). Można go jednak uruchomić bezpośrednio takim, jakim jest, a następnie modyfikować i bawić się nim.

Oto jak wygląda wynik w konsoli PS: Pojedynczy pasek postępu konsoli PowerShell

Tak wygląda wynik w PS ISE: Pojedynczy pasek postępu PowerShell ISE

Zastosowanie wewnętrznego paska postępu

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)

   }

Należy pamiętać, że dla zwięzłości ten przykład nie zawiera kodu wykonawczego (symulowanego za pomocą Start-Sleep ). Można go jednak uruchomić bezpośrednio takim, jakim jest, a następnie modyfikować i bawić się nim.

Oto jak wygląda wynik w konsoli PS: Wewnętrzny pasek postępu konsoli PowerShell

Tak wygląda wynik w PS ISE: Wewnętrzny pasek postępu PowerShell ISE



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow