PowerShell is an incredibly powerful scripting environment integrated into an object oriented shell. From the viewpoint of command shell the biggest difference to legacy shells like cmd, bash, csh etc. is its object oriented nature. So while conventional shells read text from stdin and put text to stdout, PowerShell passes objects around.
Example bash:
"ls" returns formatted text, which shows the content of the current directory. In order to get the name of the 3rd file you need parsing tools like grep and sed etc. to extract the name from the formatted text
Powershell
"ls" also returns hat the content of the current directory but as array of file objects. In order to get the name of the 3rd file you just type.
(ls)[3].name
You want to kill all instances of Edge running?
ps | where { $_.name -match "edge" } | kill
Explanation:
ps returns an array of process object current running on your system. This is piped to the where-commandlet, which filters the objects where the name match with regular expression "edge" and finally the result is piped to the kill command.