PowerShell大于不工作

时间:2018-05-19 12:52:24

标签: powershell

我在获取脚本搜索单词和数字时遇到了一致的问题,如果该数字大于定义的数字,则会向我发送警报。我似乎无法找到任何答案,我不得不相信以前已经做过。当我将其查找的值设置为0时,脚本只向我发送电子邮件。为什么只有0可以工作?有一次我使用Queued:\s+(\d+)'),但我不得不改变它,因为它返回null并且不起作用。以下脚本正在运行,但只有在值设置为0 -

时才有效
$Output = 'D:\test.data\QueuedJobs.txt'
d:
set-location -Path 'D:\program files\veritas\netbackup\bin\admincmd'
.\bpdbjobs -summary -L > $Output

[int]$Queued = (Select-String -Path $Output -Pattern '(?<=Queued:\s+)\d+').Matches.Value

if ($Queued -ge 10){"Queued is {0}" -f $Queued}

我遇到的问题是它试图阅读的输出有很多空格。这就是它生成的文件 -

Queued:                                130
Waiting-to-Retry:                        0
Active:                         124
Successful:                   26913
Partially Successful:           114
Failed:                         186
Incomplete:                       0
Suspended:                        0
Total:                        27337

1 个答案:

答案 0 :(得分:0)

我不得不使用一些不同的模式。

[int]$Queued = (Select-String -Path .\mat.txt -Pattern 'Queued:\s+(\d+)').Matches.Groups[1].Value

修改

可以使用具有正面观察效果的表达方式。

[int]$Queued = (Select-String -Path $Output -Pattern '(?<=Queued:\s+)\d+').Matches.Value