gpt4 book ai didi

powershell - 如何在函数中传递 "Type"参数?

转载 作者:行者123 更新时间:2023-12-02 07:06:34 24 4
gpt4 key购买 nike

我有两段代码:

# code 1:
[type]$t1 = [switch]
# all is ok, code works as expected

#code 2:
function test ([type]$t2) { }
test -t2 [switch]
# here we get error. can't convert from string to system.type

我知道,我可以写:test -t2 "System.Management.Automation.SwitchParameter",但它很丑!!为什么我可以将 [switch] 设置为 [type] 变量,但不能将其传递给函数??

最佳答案

PowerShell 允许您使用强制转换创建类型:

PS> [type]"switch"

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False SwitchParameter System.ValueType

您实际上在做的是传递括在方括号中的类型名称:

PS> [type]"[switch]"
Cannot convert the "[switch]" value of type "System.String" to type "System.Type".

所以你只需要传递类型的名称:

test -t2 switch

test -t2 ([switch].fullname)

关于powershell - 如何在函数中传递 "Type"参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11010091/

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