gpt4 book ai didi

powershell - 使用 PowerShell 从参数中获取变量类型

转载 作者:行者123 更新时间:2023-12-03 00:47:12 27 4
gpt4 key购买 nike

如何使用 PowerShell 从参数中获取变量的类型?

影响if TypeOf(xyz) is Stringif TypeOf(xyz) is integer

出于我的目的,我想检查它是字符串还是安全字符串。我想使用带有参数的单个函数。不是两个单独的函数,一个用于安全字符串,一个用于字符串。

最佳答案

您问题的直接答案是使用 the -is operator :

if ($xyz -is [String]){}
if ($xyz -is [SecureString]){}

if ($xyz -isnot [int]){}

然而,深入挖掘:

I would like to use a single function with a parameter. Not two separate functions, one for a securestring and one for a string.

您可以使用单个函数,使用 parameter sets区分您使用的是哪个版本:

function Do-Thing {
[CmdletBinding()]
param(
[Parameter(
ParameterSetName = 'Secure',
Mandatory = $true
)]
[SecureString]
$SecureString ,

[Parameter(
ParameterSetName = 'Plain',
Mandatory = $true
)]
[String]
$String
)

switch ($PSCmdlet.ParameterSetName)
{
'Plain' {
# do plain string stuff
}

'Secure' {
# do secure stuff
}
}
}

继续运行该示例定义,然后查看帮助:

Get-Help Do-Thing

您将看到生成的参数集,其中显示了您可以调用它的两种方式。每种方式都有一个相互排斥的参数。

NAME
Do-Thing

SYNTAX
Do-Thing -SecureString <securestring> [<CommonParameters>]

Do-Thing -String <string> [<CommonParameters>]

关于powershell - 使用 PowerShell 从参数中获取变量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41557014/

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