Чтение из случайно названных текстовых файлов - PullRequest
0 голосов
/ 24 мая 2018

Я заканчиваю сценарий в PowerShell, и это то, что я должен сделать:

  • Найти и получить все файлы .txt в папке
  • Читать их содержимое (естьчисло внутри должно быть меньше 50)
  • Если любой из этих файлов имеет номер больше 50, измените флаг, который позволит мне отправить критическое сообщение на сервер мониторинга.

Часть кода ниже - это то, что у меня уже есть, но, вероятно, это неправильно, потому что я не привел никаких аргументов для Get-Content, возможно, это что-то очень простое, но я все еще привыкаю к ​​PowerShell.Какие-либо предложения?Большое спасибо.

Get-ChildItem -Path C:\temp_erase\PID -Directory -Filter *.txt |            
ForEach-Object{
    $warning_counter = Get-Content
    if ($warning_counter -gt '50')
    {
        $crit_counter = 1
        Write-Host "CRITICAL: Failed to kill service more than 50 times!"
    }
}

1 Ответ

0 голосов
/ 24 мая 2018

но это, вероятно, неправильно, потому что я не привел никаких аргументов для Get-Content

Да.Это первая проблема.Посмотрите Get-Help <command> и или документы, такие как TechNet , когда вы потерялись.Для основных командлетов вы всегда будете видеть примеры.

Second, Get-Content, возвращает строковые массивы (по умолчанию), поэтому, если вы выполняете числовое сравнение, вам нужно рассматривать значение как таковое.

В-третьих, у вас есть разрыв строки между командлетом foreach-object и его открывающей скобкой.Это создаст вам проблему с анализом, и PS запросит отсутствующий блок процесса.Таким образом, меняются только упомянутые ....

Get-ChildItem -Path C:\temp_erase\PID -Directory -Filter *.txt | ForEach-Object{
    [int]$warning_counter = Get-Content $_.FullName
    if ($warning_counter -gt '50')
    {
        $crit_counter = 1
        Write-Host "CRITICAL: Failed to kill service more than 50 times!"
    }
}

Одна очевидная вещь, отсутствующая в этом, заключается в том, что вы не показываете, какой файл вызвал сообщение.Вам следует обновить процесс уведомления / вывода.У вас также нет логики для проверки содержимого файла.Может легко произойти сбой, процедурный или программный, для файлов с не числовым содержимым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...