我可以将参数传递给Powershell函数Unix方式吗?
发布时间:2020-12-15 22:42:32 所属栏目:安全 来源:网络整理
导读:我有一个Power Shell函数,基本上看起来像这样: function DoSomething-ToTask { [cmdletbinding()] param( [parameter(Mandatory=$true)] [strehg[]]$TaskNums ) foreach ($TaskNum in $TaskNums) { do something $TaskNum }} 目标是能够使用任意数量的参数
我有一个Power
Shell函数,基本上看起来像这样:
function DoSomething-ToTask { [cmdletbinding()] param( [parameter(Mandatory=$true)] [strehg[]]$TaskNums ) foreach ($TaskNum in $TaskNums) { do something $TaskNum } } 目标是能够使用任意数量的参数从命令行调用此函数.例如,我现在可以这样称呼它: DoSomething-ToTask 1 2 3 ..稍后会这样 DoSomething-ToTask 4 第二个例子有效,但第一个没有.我已经知道我需要传递多个这样的参数: DoSomething-ToTask (1,2,3) 与第一个例子相比,这不是世界上最糟糕的事情,但仍然是一种痛苦. 有没有办法编写一个与“1 2 3”参数示例一起使用的PS函数? 解决方法
是的,您可以使用ValueFromRemainingArguments参数属性.
function DoSomething-ToTask { [cmdletbinding()] param( [Parameter(Mandatory=$true,ValueFromRemainingArguments = $true)] [int[]]$TaskNums ) foreach ($TaskNum in $TaskNums) { do something $TaskNum } } 这是一个工作示例: 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; 结果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |