2015-10-23 18 views
6

Birden çok ilerleme çubuğunu, bir dış döngü için ve bir iç için görüntülemek için bir yol arıyorum. Loop'un özel nesnelerin büyük bir listesinden geçtiği bir komut dosyası var ve bu nesnelerin her biri için, bu nesnelerin bir özniteliği olan bir listedeki eylemleri gerçekleştiren bir iç döngüye sahibim.Çoklu Powershell İlerleme Çubukları (İç içe?)

Senaryo Örnek:

$ListOfIDs.Keys | 
Show-Progress | #Outer Loop - ProgressBar1 
% { 
    $entityName = $_ 
    $TableIndex = $ListOfEntities.Name.IndexOf($entityName) 
    $TableNameList = $ListOfEntities[$TableIndex].Group.RoleTable 

    $ListOfIDS[$_] | 
    Show-Progress | #Inner Loop - ProgressBar2 
    % { 
     $ID = $_.ID 
     [PSCustomObject] @{ 
      EntityName = $entityName 
      Id = $ID 
      Roles = $TableNameList | Function-FooBar -ID $ID 
     } 
    } 
} 

Show İlerleme Fonksiyonu: Burada

function Show-Progress 
{ 
[CmdletBinding()] 
param (
    [Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true)] 
    [PSObject[]]$InputObject 
) 

    [int]$TotItems = $Input.Count 
    [int]$Count = 0 

    $Input|foreach { 
     $_ 
     $Count++ 
     [int]$PercentComplete = ($Count/$TotItems* 100) 
     Write-Progress -Activity "Processing items" -PercentComplete $PercentComplete -Status ("Working - " + $PercentComplete + "%") 
    } 
} 

ne arıyorum hızlı bir örneğidir: Sen parametresini kullanabilirsiniz ProgressExample

cevap

11

-ParentId ve Bunu başarmak için -Id. Dış döngü azından kimliği 1 atayabilir ve İç Loop değerin ParentId olarak belirtmek 1.

+0

Bu istediğim şeyi mükemmel bir şekilde başardı, ebeveyn özelliğini asla fark etmediğime inanamıyorum, şimdi aptal hissediyorum. Yardım için teşekkürler! –

+0

Rica ederim :) –