У меня есть текущий скрипт, который читает файл со словом Queued: и числом, за которым следует много пробелов.Если число больше 100, оно отправит мне письмо
$Output = 'D:\alec.data\QueuedJobss.txt'
d:
set-location -Path 'D:\program files\veritas\netbackup\bin\admincmd'
.\bpdbjobs -summary -L > $Output
$Queued = (Select-String -Pattern "Queued:\s+(\d+)" -Path $Output).Matches.Groups[1].Value
if ($Queued -gt 100 ) {
$MailArgs = @{
'To' = 'alb2112@test.com'
'From' = 'netbackup@test.com'
'Subject' = 'Over 100 Queued Jobs!'
'Attachments' = $Output
'Body' = 'Check Environment'
'SmtpServer' = 'smtp.test.com'
}
Send-MailMessage @MailArgs
}
Я не очень знаком с использованием этих выражений cmds, чтобы помочь им понять пробелы.Если есть другие решения этой проблемы без использования выражений, пожалуйста, дайте мне знать.Выходные данные, которые он читает, выглядят так:
Summary of jobs on ustest01
Queued: 0
Waiting-to-Retry: 0
Active: 43
Successful: 25391
Partially Successful: 113
Failed: 184
Incomplete: 0
Suspended: 0
Total: 25731
Получает следующую ошибку, утверждая, что не может индексироваться в нулевой массив.Вроде бы проблема с выражением -
Cannot index into a null array.
At line:6 char:88
+ [int]$Queued = (Select-String -Pattern "Queued:\s+(\d+)" -Path $Output).Matches.Groups[ <<<< 1].Value
+ CategoryInfo : InvalidOperation: (1:Int32) [], RuntimeException
+ FullyQualifiedErrorId : NullArray