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 3
3