PowerShell -gt比较运算符无法正常工作

时间:2018-05-18 19:30:58

标签: powershell

我目前正在使用PowerShell脚本来读取文件的输出,然后如果数字高于我想要的数量,它会发送一封电子邮件。脚本在下面 -

$Output = 'D:\alec.data\QueuedJobss.txt'
d:
set-location -Path 'D:\program files\veritas\netbackup\bin\admincmd'
.\bpdbjobs -summary -L > $Output

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

if ($Queued -gt 1) 

它正在创建文件,但它不是发送给我的。我知道我的电子邮件脚本正在运行,因为它们与我一直使用的相同。似乎很难解释字符串。我没有收到代码上的任何错误。它读取的输出看起来像这样 -

Summary of jobs on usctest01
Queued:                                6
Waiting-to-Retry:                        0
Active:                           0
Successful:                   25863
Partially Successful:           113
Failed:                         184
Incomplete:                       0
Suspended:                        0
Total:                        26160

1 个答案:

答案 0 :(得分:3)

如果您通过运行get-member$Queued上结帐$Queued | gm,您会看到:TypeName: System.String

所以$Queued是一个字符串,因此-gt不起作用。但是,如果您将变量转换为整数,如下所示([int]告诉变量为整数),您可以使用-gt,如示例所示:

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

现在正在运行$Queued | gm会向您显示:TypeName: System.Int32