Can I Pass Arguments To A Powershell Function The Unix Way?

后端 未结 1 1400
庸人自扰
庸人自扰 2020-12-11 05:28

I have a PowerShell function that basically looks like this:

function DoSomething-ToTask {
    [cmdletbinding()]
    param(
          [parameter(Mandatory=$t         


        
相关标签:
1条回答
  • 2020-12-11 06:06

    Yes, you can use the ValueFromRemainingArguments parameter attribute.

    function DoSomething-ToTask {
        [cmdletbinding()]
        param(
              [Parameter(Mandatory=$true, ValueFromRemainingArguments = $true)]
              [int[]]$TaskNums
        )
    
        foreach ($TaskNum in $TaskNums) {
            do something $TaskNum
        }
    }
    

    Here is a working example:

    function Do-Something { 
        [CmdletBinding()]
        param (
            [Parameter(ValueFromRemainingArguments = $true)]
            [int[]] $TaskNumber
        )
    
        foreach ($Item in $TaskNumber) {
            Write-Verbose -Message ('Processing item: {0}' -f $Item);
        }
    }
    
    Do-Something 1 2 3 -Verbose;
    

    Result:

    enter image description here

    0 讨论(0)
提交回复
热议问题