首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell - if $var -like $var*

Powershell - if $var -like $var*
EN

Stack Overflow用户
提问于 2017-06-14 08:35:16
回答 1查看 7K关注 0票数 5

我正在Powershell中使用SCSM,但是遇到了一个if语句的问题。

我有一个函数,它根据作为变量传递给函数的条件收集数据。示例:

代码语言:javascript
复制
$JMLs1 = collectTickets -crit $JMLCriteria1

collectTickets是函数,$JMLCriteria1是传递的条件。

这是collectTickets函数:

代码语言:javascript
复制
function collectTickets
{
    param (
        [parameter (Mandatory=$true)]
        $crit
    )
    $fullDate = Get-Date
    if ($fullDate.DayOfWeek -eq 'Monday') 
    {
        $olderThan = $fullDate.AddDays(-4)
    }
    elseif ($fullDate.DayOfWeek -eq 'Tuesday') 
    {
        $olderThan = $fullDate.AddDays(-4)
    }
    else 
    {
        $olderThan = $fullDate.AddDays(-2)
    }
    if ($crit -like '$JML*') 
    {
        $data = Get-SCSMObject -Criteria $crit | select 'Id', 'Title', 'LastModified', 'Priority'
    }
    else 
    {
        $data = Get-SCSMObject -Criteria $crit | Where-Object {($_.LastModified -lt $olderThan)} | select 'Id', 'Title', 'LastModified', 'Priority'
    }
    return $data
}

我遇到的问题是第二个if语句,if ($crit -like '$JML*') -我不确定我们是否可以对变量使用这样的通配符,或者语法是否不正确。

为了澄清,将有多个$JML标准变量和多个其他条件变量,但我只想对$JML条件变量进行不同的处理。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-14 08:37:42

用双引号代替单引号。使用单引号,PowerShell认为您在查找的是文字字符串$JML,而不是变量。

代码语言:javascript
复制
if ($crit -like "$JML*")

编辑: 引证文件

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44539552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档