我见过PowerShell中用来初始化数组的@
符号。
@
符号到底表示什么,我在哪里可以了解到更多信息?
发布于 2008-12-12 19:51:45
PowerShell实际上会将任何逗号分隔的列表视为一个数组:
"server1","server2"
所以在这些情况下@是可选的。但是,对于关联数组,@是必需的:
@{"Key"="Value";"Key2"="Value2"}
按照官方说法,@是“数组运算符”。您可以在随PowerShell一起安装的文档中或在我与人合著的"Windows PowerShell: TFM“一书中了解更多有关它的信息。
发布于 2009-02-22 05:07:01
在PowerShell V2中,@也是Splat operator。
PS> # First use it to create a hashtable of parameters:
PS> $params = @{path = "c:\temp"; Recurse= $true}
PS> # Then use it to SPLAT the parameters - which is to say to expand a hash table
PS> # into a set of command line parameters.
PS> dir @params
PS> # That was the equivalent of:
PS> dir -Path c:\temp -Recurse:$true
发布于 2008-12-12 20:42:13
还可以将cmdlet (或管道)的输出包装在@()
中,以确保返回的是数组而不是单个项。
例如,dir通常返回一个列表,但根据选项的不同,它可能返回单个对象。如果您计划使用foreach-object遍历结果,则需要确保获得一个返回的列表。下面是一个人为设计的例子:
$results = @( dir c:\autoexec.bat)
还有一件事。空数组(类似于初始化变量)表示为@()
。
https://stackoverflow.com/questions/363884
复制相似问题