Parameter variables

Welcome Forums General PowerShell Q&A Parameter variables

This topic contains 0 replies, has 1 voice, and was last updated by  Forums Archives 7 years ago.

  • Author
  • #5225

    Points: 0
    Rank: Member

    by willsteele at 2012-10-23 08:54:04

    I need to check all of my parameters in a given function to see what is being used and what is not. Is there a variable I can examine rather than having to look at each parameter one by one?

    by DonJ at 2012-10-23 15:45:56

    Well, $PSBoundParameters has all bound parameters; this won't include any parameter which received pipeline input, though. I don't think. But you sort of still have to look at each one, right? It's a hashtable, so the keys are your parameter names: $PSBoundParameters.ContainsKey('whatever') would return $True if that parameter was used.

    See ... eters.aspx.

    by Jason_Yoder_MCT at 2012-10-23 16:58:13


    Here is something to take a look at. There are two functions below.

    Test-Params is the one you are most interested in. It simply list all the parameters of a function and returns True or False. True if the parameter has a value.

    Test is a function with 3 parameters. It passes its parameter information to Test-Function.

    The calling statement only sends information to 2 of the parameters. You should get something like this in back:

    Parameter HasData
    ——— ——-
    A True
    b True
    c False

    What you do from here is up to you. Have fun!

    Function Test-Params
    Param (
    ForEach ($Item2 in $Set2)
    $Obj = New-Object -TypeName PSObject
    $Obj | Add-Member -MemberType NoteProperty -Name "Parameter" -Value $Item2
    $Obj | Add-Member -MemberType NoteProperty -Name "HasData" -Value $False

    ForEach ($Item1 in $Set1)

    If ($Item1 -eq $Item2)
    $Obj.HasData = $True

    Write-Output $Obj


    Function test


    Test-Params ($PSBoundParameters.keys) ((Get-Command test).Parameters).keys


    test 'Hello' 5

    by Jason_Yoder_MCT at 2012-10-23 17:00:26


    Like you answer better.

The topic ‘Parameter variables’ is closed to new replies.