Simplify Your PowerShell Script with Parameter Validation | Scripting https://devblogs.microsoft.com/scripting/simplify-your-powershell-script-with-parameter-validation/ Use Parameter Sets to Simplify PowerShell Commands | Scripting https://devblogs.microsoft.com/scripting/use-parameter-sets-to-simplify-powershell-commands/
"b00lmcxj", "b00tg191", "b01q9tb1", "b07hk30x", "b010twj1", "b03v379k", "b009v0dc", "b0378sqz", "b01n6rsf" | % { $programmeLink = $_; "https://www.bbc.co.uk/programmes/$($_)/episodes/guide" } | % {
$response = invoke-webrequest $_ ; $title = $response.ParsedHtml.getElementsByTagName('div') | ? { $_.className() -eq 'br-masthead__title' } | % { $_.innerText } ; $available = $response.ParsedHtml.getElementsByTagName('li') | ? { $_.className() -eq 'pull--left' } | % { $_.innerText } | ? { $_ -match 'Available' } ; write-host "$title (https://www.bbc.co.uk/programmes/$programmeLink) : $available"
}
Mkdir c:\temp
Mkdir c:\temp\sides
(1..5 | % { "b$_" }) | set-content -Encoding UTF8 C:\temp\Sides\buckets.txt
$buckets = gc C:\temp\Sides\buckets.txt
1..17 | % { "i$_" } | set-content -Encoding UTF8 C:\temp\Sides\items.txt
$items = (gc C:\temp\Sides\items.txt)
$itemsToBucket = ($items | select -first $numberBuckets)
$itemsToShift = ($items | select -skip $numberBuckets)
$itemsForNextIteration = $itemsToShift + $itemsToBucket
$bucketed = ($buckets | % { $item,$remaining = $itemsToBucket ; $itemsToBucket = $remaining ; new-object psobject -property @{ "bucket" = $_ ; "item" = $item } })
$itemsBucketed = ($bucketed | select -ExpandProperty item )
$itemsToShift = ($items | select -skip $itemsBucketed.Count )
$itemsForNextIteration = $itemsToShift + $itemsBucketed