You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell的Where子句中忽略未定义的空参数?

PowerShell Where子句动态忽略未定义参数的实现方法

你可以通过在每个判断条件前增加“参数为空时直接返回真”的逻辑,实现动态忽略未定义参数的效果,无需编写多个if分支。

你的参数定义:

Param(
    [parameter(position=0)]
    [String]
        $JobName,
    [parameter(position=1)]
    [String]
        $JobID
)

修正后的Where子句代码:

$Timerjob = Get-SPTimerJob | Where-Object {
    ($JobID -eq $null -or $_.Id -eq $JobID) -and
    ($JobName -eq $null -or $_.Title -eq $JobName)
}

逻辑说明:

  • 当$JobID为空时,$JobID -eq $null返回$true,整个($JobID -eq $null -or $_.Id -eq $JobID)条件自动成立,相当于忽略ID的判断
  • 当$JobID有值时,才会执行$_.Id -eq $JobID的匹配判断
  • 两个条件用-and连接,确保所有有值的参数都满足匹配要求;如果两个参数都为空,所有条件都成立,会返回所有SPTimerJob实例

内容的提问来源于stack exchange,提问作者Allen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:09:19