Spatting e Write-Progress com powershell

Guido OliveiraPowershellLeave a Comment

Olá Pessoal,

Hoje vamos ver como utilizar o write-progress para evidenciar o progresso de um script e a técnica de splatting para auxiliar na leitura de um script.

Código usado no video:

$Path = Resolve-Path -Path .

$Progress = @{
    Activity = 'Analise de Diretorio'
    CurrentOperation = $Path
    Status = 'Buscando as pastas'
    PercentComplete = 0
}

Write-Progress @Progress

$Folders = Get-ChildItem -Path $Path -Directory

Start-Sleep -Milliseconds 500

$i = 0

foreach($Folder in $Folders){
    $i++
    [int]$percentage = ($i / $Folders.Count)*100

    $progress.CurrentOperation = "Medindo o tamanho de $($Folder.Name)"
    $progress.Status = 'Analisando'
    $progress.PercentComplete = $percentage

    Write-Progress @Progress
    
    Start-Sleep -Milliseconds 600

    $Stats = Get-ChildItem -Path $Folder.Name -Recurse | Measure-Object -Property Length -Sum -Average

    [PsCustomObject]@{
        Path = $Folder.Name
        Files = $Stats.Count
        SizeKb = [math]::Round($Stats.sum/1Mb,2)
        Average = [math]::Round($Stats.Average,2)

    }
}

 

Dúvidas? Sugestões? Comente!

Até a proxima

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.