当前位置:  开发笔记 > 开发工具 > 正文

Powershell中的"@"符号有什么作用?

如何解决《Powershell中的"@"符号有什么作用?》经验,为你挑选了5个好方法。

我已经看到PowerShell中使用的@符号来初始化数组.@符号究竟是什么意思,我在哪里可以阅读更多信息?



1> Jeffrey Snov..:

在PowerShell V2中,@也是Splat运算符.

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



2> Don Jones..:

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

"server1","server2"

因此@在这些情况下是可选的.但是,对于关联数组,@是必需的:

@{"Key"="Value";"Key2"="Value2"}

正式来说,@是"阵列运营商".您可以在随PowerShell一起安装的文档中或在我合着的"Windows PowerShell:TFM"这样的书中阅读有关它的更多信息.


请务必查看下面的Jeffrey Snover的答案...... @不仅仅是一个数组标识符.

3> Michael Sore..:

虽然上述答案提供了大部分答案,但提供完整答案是有用的 - 即使是在问题的后期,即:

数组子表达式(参见about_arrays)

强制值为数组,即使是单例或null,例如 $a = @(ps | where name -like 'foo')

哈希初始值设定项(参见about_hash_tables)

使用键值对初始化哈希表,例如 $HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }

泼洒(见about_splatting)

让我们使用数组或散列表中的参数调用cmdlet,而不是使用更常见的单独枚举参数,例如使用上面的哈希表, Copy-Item @HashArguments

这里是字符串(参见about_quoting_rules)

让我们使用易于嵌入的引号创建字符串,通常用于多行字符串,例如:

$data = @"
line one
line two
something "quoted" here
"@

因为这种类型的问题(PowerShell中的'x'表示法是什么意思?)在StackOverflow以及许多读者评论中如此常见,所以我整理了一个PowerShell标点符号的词典,刚刚发布在Simple-Talk.com上.阅读所有关于@以及%和#和$ _和?以及PowerShell标点符号完整指南中的更多内容.这篇文章附有文章,可以在一张纸上提供所有内容: 在此输入图像描述



4> Mike Shepard..:

您还可以包装cmdlet(或管道)的输出,@()以确保您获得的是数组而不是单个项.

例如,dir通常返回一个列表,但根据选项,它可能返回一个对象.如果您计划使用foreach-object迭代结果,则需要确保返回列表.这是一个人为的例子:

$results = @( dir c:\autoexec.bat)

还有一件事......表示一个空数组(比如初始化一个变量)@().



5> Cadoo..:

Splatting操作员

要创建数组,我们创建一个变量并分配数组.数组以"@"符号表示.让我们进行上面的讨论并使用数组连接到多个远程计算机:

$strComputers = @("Server1", "Server2", "Server3")

它们用于数组和散列.

PowerShell教程7:累积,调用和修改数据

PowerShell中的数组文字

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有