I am using Select-Object to filter a CSV to get the necessary columns.
When I use this: $Filter = $Csv | Select-Object ($Csv[0].PSObject.Properties.Name -like "*Results*" it filters all columns and displays everything containing results, this works fine. But how do I get it to keep my first column where the header is "Sample" as well as keeping the results? I have tried without success:
$Filter = $Csv | Select-Object ($Csv[0].PSObject.Properties.Name -like "*Results*" -and $Csv[0].PSObject.Properties.Name -like "Sample")
I understand you can add multiple properties comma separated but I am looking for the same property but with multiple matching parameters.
The output would include a column that have header name "Sample" and columns that would contain the word "Results". They both work individually in the first line of code provided, but how do i make it work together with both matching strings?
Edit: Expected output added
In order to pass multiple property (column) names to the (possibly positionally implied)
-Propertyparameter of theSelect-Objectcmdlet using an expression ((...)), you must pass a flat array.To that end, use
+for concatenation, making sure that (at least) the LHS is an array.The following places the
Sampleproperty first, using@(...), the array-subexpression operator to wrap it in an array: