簡體   English   中英

使用PowerShell從參數獲取變量類型

[英]Get type of variable from parameter using PowerShell

如何使用PowerShell從參數中獲取變量的類型?

如果TypeOf(xyz)為StringTypeOf(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM