我目前正在使用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
答案 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