gpt4 book ai didi

Powershell - if $var -like $var*

转载 作者:行者123 更新时间:2023-12-03 10:03:29 28 4
gpt4 key购买 nike

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

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

$JMLs1 = collectTickets -crit $JMLCriteria1
collectTickets是函数, $JMLCriteria1是通过的标准。

这是 collectTickets功能:
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我想区别对待的标准变量。

最佳答案

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

if ($crit -like "$JML*")

编辑: about_Quoting documentation

关于Powershell - if $var -like $var*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44539552/

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