Всем привет.
Есть возможность включить простейший мониторинг изменения содержимого текстового файла. Например файла журнала. Powershell рулит.
Пишем следующее:
Get-Content d:\test.log -Wait -Tail 5
test.log - наш файл журнала
Tail 5 - показывать последние 5 строк.
При любом добавлении информации в файл test.log она тут же будет отображена в окне Powershell. Есть пару нюансов на выходе если информации в файл будет не добавлена, а наоборот, удалена. В этом случае на выход попадет все что есть в журнале. Также неадекватно себя ведет вывод если добавляется не символ, а только пробел. Как вы понимаете, такое поведение характерно в том случае если журнал изменяется вручную, с помощью редактора, что может служить сигналом о преднамеренном вмешательстве в содержимое файла.
Еще пару полезностей для вывода в Powershell:
- ключик Paging - постраничный вывод, аналог "more" в cmd.
Get-Process | Out-Host -Paging
- ключик PassThru - передача данных по конвейеру дальше из Out-GridView.
Начиная 3-й версии PowerShell Out-GridView поддерживает ключ PassThru, позволяющий передать полученные данные дальше по конвейеру. Например, можно вывести список процессов, в графической оснастке отобрать нужные и передать их командлету Stop-Process, который остановит выбранные процессы:
Get-Process | Out-GridView -PassThru | Stop-Process
Это все.
No comments:
Post a Comment
А что вы думаете по этому поводу?