$_- Current PowerShell object%- ForEach-Object& "SomeString (or var)"- Execute what is in the string or var, e.g.$MsBuild = "Path//To//MsBuild" & $MsBuild My.csproj /p:SomeOptions$var = Read-Host "Prompt"- Get Input>- Redirect operatorSome-Command > out.txt # redirect output of Some-Command to file 2>&1 # redirect error to success stream$null- Null$true/$false- Boolean-eq, -ne, -gt, -lt, -le, -ge- comparison operators Case-insensitive by default.-and, -or, -xor, -not, !- logical operators-in, -notin, -contains, -notcontains- containment$( )- subexpression - evaluate the contents of the brackets1..5- range operatorGet-Childitem -Path Env:* | Sort-Object Name- list out env vars. some\script.ps1- execute the contents of the script (the script path could contain variables)$PSScriptRoot- the folder of the currently executing script$MyInvocation- get the command that caused this invocation$MyInvocation.PSCommandPath- the full path to the command for the current invocation$MyInvocation.Line- gets the full text that caused the invocation$MyInvocation.InvocationName- gets the command name to invoke the script. If executing as a script would be the script name-
If($MyInvocation.Line.Length -gt $MyInvocationName.Length){ $params = $MyInvocation.Line.Substring($MyInvocation.InvocationName.Length) }- get the full text after the script name if invoking script from command line
| Tee-Object- splits out the pipeline so you can “tap” the pipeline to pull out a variable or file and continue processing If it is the last part of the pipeline it will output to console.| Tee-Object -Variable SomeVar- will split out the pipeline to$SomeVar.
[
powershell
]