绝大多数用户更关心最新的日志,下面给出一个简单的例子演示从一个文本日志中获取最后的某几行文本行:
# 显示windowsupdate.log 文件的最新5行日志
$logs = Get-Content -Path $env:windir\windowsupdate.log -ReadCount 0
$logs[-5..-1]
上面的例子会返回windows 更新日志文件中的最后5行文本。它的执行效率非常高,因为Get-Content使用了–ReadCount 0 参数。ReadCount是指每次发送给管道的文本行数,0代表全部,在当前的场景下选择0效率更高。然而有另外一个诟病,变量$logs会以数组的形式将文本大量保存在内存中,并且还是连续的内存。因此在PowerShell 3.0中有了一个更高效的途径。
# 显示windowsupdate.log 文件的最新5行日志
Get-Content -Path $env:windir\windowsupdate.log -ReadCount 0 -Tail 5
这里的Tail参数让Get-Content命令只返回指定结尾行数的文本。这样就避免了大量文本内容驻留在内存内的问题了。
引用链接:Accessing Latest Log File Entries