[英]Get type of variable from parameter using PowerShell
如何使用PowerShell從參數中獲取變量的類型?
如果TypeOf(xyz)為String或TypeOf(xyz)為integer的話,會產生一些影響 。
出於我的目的,我想檢查它是字符串還是安全字符串。 我想將單個函數與參數一起使用。 不是兩個單獨的函數,一個用於安全字符串,一個用於字符串。
您問題的直接答案是使用-is
運算符 :
if ($xyz -is [String]){}
if ($xyz -is [SecureString]){}
if ($xyz -isnot [int]){}
但是,深入研究:
我想將單個函數與參數一起使用。 不是兩個單獨的函數,一個用於安全字符串,一個用於字符串。
您可以使用一個帶有參數集的函數來區分所使用的版本:
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>]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.