首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >"@“符号在PowerShell中有什么作用?

"@“符号在PowerShell中有什么作用?
EN

Stack Overflow用户
提问于 2008-12-12 19:32:40
回答 3查看 134.2K关注 0票数 134

我见过PowerShell中用来初始化数组的@符号。

@符号到底表示什么,我在哪里可以了解到更多信息?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-12-12 19:51:45

PowerShell实际上会将任何逗号分隔的列表视为一个数组:

代码语言:javascript
复制
"server1","server2"

所以在这些情况下@是可选的。但是,对于关联数组,@是必需的:

代码语言:javascript
复制
@{"Key"="Value";"Key2"="Value2"}

按照官方说法,@是“数组运算符”。您可以在随PowerShell一起安装的文档中或在我与人合著的"Windows PowerShell: TFM“一书中了解更多有关它的信息。

票数 96
EN

Stack Overflow用户

发布于 2009-02-22 05:07:01

在PowerShell V2中,@也是Splat operator

代码语言:javascript
复制
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
票数 130
EN

Stack Overflow用户

发布于 2008-12-12 20:42:13

还可以将cmdlet (或管道)的输出包装在@()中,以确保返回的是数组而不是单个项。

例如,dir通常返回一个列表,但根据选项的不同,它可能返回单个对象。如果您计划使用foreach-object遍历结果,则需要确保获得一个返回的列表。下面是一个人为设计的例子:

代码语言:javascript
复制
$results = @( dir c:\autoexec.bat)

还有一件事。空数组(类似于初始化变量)表示为@()

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/363884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档