dimayakovlev.ru


Отслеживание и вывод изменений текстового файла в PowerShell

Появилась задача отслеживать изменения текстового файла в реальном времени и выводить изменения в консоль. Первая мысль - использовать дополнительное программное обеспечение для экономии времени на написание собственного решения. Но на деле всё проще, даже не надо писать собственный сценарий, потому что эту задачу успешно решает один из часто используемых командлетов PowerShell.

Это командлет Get-Content, вызываемый в сценариях, предполагающих получение и работу с содержанием текстовых файлов.

Для решения рассматриваемой задачи не надо создавать цикл, не надо определять таймер, потому что командлет Get-Content, вызванный с параметром -Wait, не завершает свою работу после получения всех строк из файла, а продолжает ежесекундно выполнять проверку файла и выводить новые строки, добавленные в него.

Get-Content -Path 'C:\Logs\Server.log' -Wait

С параметром -Wait возможно использовать параметр -Tail или его псевдоним -Last, который задаёт количество строк с конца файла, выводимые командлетом Get-Content.

В официальной справке командлета Get-Content перечислены доступные параметры с подробным описание для каждого из них. Не исключено, что ознакомление с ними даст идеи для применения привычного инструмента PowerShell в новых сценариях.