I found an answer to a previous question incredibly helpful, but I can't quite figure out how Get-Content is able able to store the 'line number' from the input.
Basically I'm wondering if PSObjects store information such as line number or row number. In the example below, it is basically like using Get-Content is able to store the line number as a variable you can use later. In the pipeline, the variable would be $_.psobject.Properties.value[5]
A bit of that seems redundant to me since $_ is an object (I think), but still it is very cool that .value[5] seems to be the line number or row number. The same is not true of Import-CSV and while I'm looking for a similar option with Import-CSV; I'd like to better understand why this works the way it does.
https://stackoverflow.com/a/23119235/15243610
Get-Content $colCnt | ?{$_} | Select -Skip 1 | %{if(!($_.split("|").Count -eq 210)){"Process stopped at line number $($_.psobject.Properties.value[5]), incorrect column count of: $($_.split("|").Count).";break}}
$CSV- and use aforloop to iterate over it from1to$CSV.Count. Now you can use the loop variable as an index.ReadCount. I have no idea why I wrote that the way I did, just doing$_.ReadCountwould be much simpler than$_.psobject.Properties.Value[5].Import-Csvbut yeah, each element outputted byGet-Contenthas theReadCountproperty assuming the-Rawswitch is not in place.