Select second or third object / element
For selecting the n-th element skip over the first n-1 elements:
$third = Get-ChildItem -Path $dir | Sort-Object CreationTime -Descending | Select-Object -Skip 2 | Select-Object -First 1
or select the first n and then of those the last element:
$third = Get-ChildItem -Path $dir | Sort-Object CreationTime -Descending | Select-Object -First 3 | Select-Object -Last 1
Beware, though, that the two approaches will yield different results if the input has less than n elements. The first approach would return $null
in that scenario, whereas the second approach would return the last available element. Depending on your requirements you may need to choose one or the other.
The second approach suggested by @AnsgarWiechers can easily be turned into a simple reusable funtion, like so:
function Select-Nth { param([int]$N) $Input | Select-Object -First $N | Select-Object -Last 1}
And then
PS C:\> 1,2,3,4,5 |Select-Nth 33
You could also access the element as an array item, using the index n-1. This seems more succinct than chaining pipes.
$third = (Get-ChildItem -Path $dir | Sort-Object CreationTime -Descending)[2]