I used ls alias:
and tried to find &
. However, &
is not in the output. What\'s &
? Is it the combination of In
Some other uses for the call operator, not well documented:
# Get and set a variable in a module scope with the call operator
# get module object
$m = get-module counter
& $m Get-Variable count
& $m Set-Variable count 33
# see module function definition
& $m Get-Item function:Get-Count
# run a cmdlet with a commandinfo object and the call operator
$d = get-command get-date
& $d
You can think of & { }
as an anonymous function.
1..5 | & { process{$_ * 2} }
Another really useful operator is the subexpression operator. $( ) It's not just for inside strings. You can combine two statements and make them act as one.
$(echo hi; echo there) | measure
If and Foreach statements can go inside them too. You couldn't normally pipe from foreach (). So anywhere you could put an expression or pipeline, with $() you can put any statement or group of statements.
$(foreach ($i in 1..10) { $i;sleep 1 } ) | Out-Gridview
Although, I like streaming from foreach with the call operator (or function), so I don't have to wait.
& {foreach ($i in 1..10) { $i;sleep 1 } } | Out-GridView