我使用1. http://ipcamera-viewer.com/image/?p=199619_20170221_162149_7208.jpg
2. https://secure-api.userlocal.jp/ipcamera/posts/files/16/41/502241_2017022116205643436_830aaf54751.jpg.
并试图找到ls alias:
。但是,&
不在输出中。什么是&
?它是&
和invoke-command
的组合吗?
PowerShell中是否还有其他没有cmdlet的运算符?
答案 0 :(得分:10)
调用操作符&
允许您执行命令,脚本或函数。
很多时候,您只需键入其名称即可执行命令,但只有在命令位于环境路径中时才会执行此命令。此外,如果命令(或路径)包含空格,则此操作将失败。围绕带引号的命令将使PowerShell将其视为字符串,因此除了引号之外,还可以使用&
调用运算符强制PowerShell将字符串视为要执行的命令。
我不确定PowerShell中的所有运算符,但另一个非常有用的运算符是:--%
用于停止解析。
PowerShell 3.0中引入的停止解析符号--%
指示PowerShell不要将该行上的任何其他输入解释为PowerShell命令或表达式。
PowerShell Stop Parsing Operator
编辑:根据已做出的评论:
Get-Help About_Operators
将向您展示所有运算符类型的最佳概述以及呼叫和停止解析运算符等抽象概述。
答案 1 :(得分:0)
呼叫操作员的其他一些用途,但记录不充分:
# 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
您可以将& { }
视为匿名函数。
1..5 | & { process{$_ * 2} }
另一个真正有用的运算符是子表达式运算符。 $()不仅仅用于内部字符串。您可以合并两个语句并使它们充当一个语句。
$(echo hi; echo there) | measure
If和Foreach语句也可以放在其中。您通常无法从foreach()中进行管道传输。因此,在任何可以放置表达式或管道的地方,都可以使用$()放置任何语句或语句组。
$(foreach ($i in 1..10) { $i;sleep 1 } ) | Out-Gridview
尽管,我喜欢使用调用运算符(或函数)从foreach流式传输,所以我不必等待。
& {foreach ($i in 1..10) { $i;sleep 1 } } | Out-GridView