如何使用 PowerShell 从参数中获取变量的类型?
东西的效果如果TypeOf运算(XYZ)是字符串或如果TypeOf运算(XYZ)为整数。
出于我的目的,我想检查它是字符串还是安全字符串。我想使用带有参数的单个函数。不是两个单独的函数,一个用于安全字符串,一个用于字符串。
直接回答你的问题是使用的-is运营商:
if ($xyz -is [String]){}
if ($xyz -is [SecureString]){}
if ($xyz -isnot [int]){}
Run Code Online (Sandbox Code Playgroud)
但是,深入挖掘:
我想使用带有参数的单个函数。不是两个单独的函数,一个用于安全字符串,一个用于字符串。
您可以使用单个函数,通过参数集来区分您使用的是哪个版本:
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
}
}
}
Run Code Online (Sandbox Code Playgroud)
继续运行该示例定义,然后查看帮助:
Get-Help Do-Thing
Run Code Online (Sandbox Code Playgroud)
您将看到生成的参数集,其中显示了您可以调用它的两种方式。每种方式都有一个单独的、互斥的参数。
Run Code Online (Sandbox Code Playgroud)NAME Do-Thing SYNTAX Do-Thing -SecureString <securestring> [<CommonParameters>] Do-Thing -String <string> [<CommonParameters>]
| 归档时间: |
|
| 查看次数: |
2402 次 |
| 最近记录: |