gpt4 book ai didi

powershell - 我可以以Unix方式将参数传递给Powershell函数吗?

转载 作者:行者123 更新时间:2023-12-04 01:36:04 26 4
gpt4 key购买 nike

我有一个PowerShell函数,基本上看起来像这样:

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;

结果:

关于powershell - 我可以以Unix方式将参数传递给Powershell函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21340189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com