get-ChunkList.ps1
|
function get-ChunkList { Param ( [Parameter(Mandatory = $true)] $listToChunk, [Parameter(Mandatory = $true)] $userBatchSize, [Parameter(Mandatory = $true)] $isCustomObject ) out-logfile -string "Start Get-ChunkList" $chunkSize = $userBatchSize if ($isCustomObject -ne $true) { $chunks = [System.Collections.Generic.List[Object]]::New() } else { $chunks = [System.Collections.Generic.List[psCustomObject]]::New() } out-logfile -string "Starting to chunk the list provided..." for ($i = 0; $i -lt $listToChunk.count ; $i += $chunkSize) { out-logfile -string ("Processing chunk: "+$i.tostring()) $endIndex = [Math]::Min($i + $chunkSize - 1, $listToChunk.Count - 1) $chunks.Add($listToChunk[$i..$endIndex]) | Out-Null } out-logfile -string ("Count of chunks: "+$chunks.Count) foreach ($chunk in $chunks) { out-logfile -string ("Chunk Size: "+$chunk.count.tostring()) } out-logfile -string "End Get-ChunkList" return $chunks } |