gpt4 book ai didi

powershell - 为什么 splat 不能直接与 powershell 中的命令一起使用?

转载 作者:行者123 更新时间:2023-12-05 01:30:09 25 4
gpt4 key购买 nike

为什么下面的工作:

Get-WmiObject -class Win32_OperatingSystem

这也适用:

$params = @{class='Win32_OperatingSystem'}
Get-WmiObject @params

但这行不通:

Get-WmiObject @{class='Win32_OperatingSystem'}

错误:

Get-WmiObject : Invalid query "select * from System.Collections.Hashtable"
At line:1 char:1
+ Get-WmiObject @{class='Win32_OperatingSystem'}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-WmiObject], ManagementException
+ FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

最佳答案

Splatting 是一种将一组参数值作为单元传递给命令的方法。 Windows PowerShell 将集合中的每个值与一个命令参数相关联。 Splatting 参数值存储在命名的 splatting 变量中,这些变量看起来像标准变量,但以 At 符号 (@) 而不是美元符号 ($) 开头。 At 符号告诉 Windows PowerShell 您传递的是一组值,而不是单个值。

如果你不把它存储到一个变量中,它就不是splatting,它是一个简单的哈希表,它作为一个位置参数传递到命令中。

引用

About splatting

关于powershell - 为什么 splat 不能直接与 powershell 中的命令一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46135049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com