Basic Set Operations
A set is a collection of items which can be anything. Whatever operator we need to work on these sets are in short the set operators and the operation is also known as set operation. Basic set operation includes Union, Intersection as well as addition, subtraction, etc.
Filtering: Where-Object / where / ?
Section titled “Filtering: Where-Object / where / ?”Filter an enumeration by using a conditional expression
Synonyms:
Where-Objectwhere?Example:
$names = @( "Aaron", "Albert", "Alphonse","Bernie", "Charlie", "Danny", "Ernie", "Frank")
$names | Where-Object { $_ -like "A*" }$names | where { $_ -like "A*" }$names | ? { $_ -like "A*" }Returns:
Aaron
Albert
Alphonse
Ordering: Sort-Object / sort
Section titled “Ordering: Sort-Object / sort”Sort an enumeration in either ascending or descending order
Synonyms:
Sort-ObjectsortAssuming:
$names = @( "Aaron", "Aaron", "Bernie", "Charlie", "Danny" )Ascending sort is the default:
$names | Sort-Object$names | sortAaron
Aaron
Bernie
Charlie
Danny
To request descending order:
$names | Sort-Object -Descending$names | sort -DescendingDanny
Charlie
Bernie
Aaron
Aaron
You can sort using an expression.
$names | Sort-Object { $_.length }Aaron
Aaron
Danny
Bernie
Charlie
Grouping: Group-Object / group
Section titled “Grouping: Group-Object / group”You can group an enumeration based on an expression.
Synonyms:
Group-ObjectgroupExamples:
$names = @( "Aaron", "Albert", "Alphonse","Bernie", "Charlie", "Danny", "Ernie", "Frank")
$names | Group-Object -Property Length$names | group -Property LengthResponse:
|Count|Name|Group |---|---|---|---|---|---|---|---|---|--- |4|5|{Aaron, Danny, Ernie, Frank} |2|6|{Albert, Bernie} |1|8|{Alphonse} |1|7|{Charlie}
Projecting: Select-Object / select
Section titled “Projecting: Select-Object / select”Projecting an enumeration allows you to extract specific members of each object, to extract all the details, or to compute values for each object
Synonyms:
Select-ObjectselectSelecting a subset of the properties:
$dir = dir "C:\MyFolder"
$dir | Select-Object Name, FullName, Attributes$dir | select Name, FullName, Attributes|Name|FullName|Attributes |---|---|---|---|---|---|---|---|---|--- |Images|C:\MyFolder\Images|Directory |data.txt|C:\MyFolder\data.txt|Archive |source.c|C:\MyFolder\source.c|Archive
Selecting the first element, and show all its properties:
$d | select -first 1 *| |---|---|---|---|---|---|---|---|---|--- |PSPath |PSParentPath |PSChildName |PSDrive |PSProvider |PSIsContainer |BaseName |Mode |Name |Parent |Exists |Root |FullName |Extension |CreationTime |CreationTimeUtc |LastAccessTime |LastAccessTimeUtc |LastWriteTime |LastWriteTimeUtc |Attributes