好吧,您可以在运行函数时将值命名为$args
自动变量
JobCountStatus "Failed"
您可以使用带有参数的高级函数,无论是否命名:
function JobCountStatus {
[CmdletBinding()]
Param (
[Parameter(Mandatory = $true, Position = 0)]
[System.String]
$Status
)
Process {
(Get-VBRJob | Where-Object { $_.Info.LatestStatus -eq $Status } | Measure-Object).Count
}
}
并这样称呼它:
JobCountStatus -Status "Failed"
# OR
JobCountStatus "Failed"
后者的最终结果与使用$args
. 在这里指定您自己的参数的唯一可能的好处是您可以定义状态的ValidateSet或状态值的 Enum,以便您可以通过它们进行选项卡。前者的一个例子是这样的:
function JobCountStatus {
[CmdletBinding()]
Param (
[Parameter(Mandatory = $true, Position = 0)]
[ValidateSet("Failed", "Running", "Successful", "Unknown")]
[System.String]
$Status
)
Process {
(Get-VBRJob | Where-Object { $_.Info.LatestStatus -eq $Status } | Measure-Object).Count
}
}