【问题标题】:Questions with Windows More command [closed]Windows More命令的问题[关闭]
【发布时间】:2017-08-18 21:16:00
【问题描述】:

我必须读取 Windows 服务器上的日志文件并将其显示给用户。 我不必显示所有信息。从文件中。 在 unix 中,我可以使用 tail -100 来获取最新的 100 行,并且通过一些研究,我可以 grep 或获取该文本之后的信息。 但是,在 Windows 中,我使用的是“更多”,这对我来说不起作用。

到目前为止我尝试过的那些,并阅读了整个文件。

    more <filename.txt>OutPutFile.txt

我想做以下事情之一:

  1. 我需要读取最新的“x”行。
  2. 在特定日期之后读取日志文件。因此,我可以获得从特定日期开始的所有日志行。 例如,我可以拥有所有的日志信息。在文件中的 之后。
  3. 即使使用 PowerShell 命令也可以,但无法在我的服务器上安装任何第 3 方应用程序。

请帮我解决我的问题。谢谢。

【问题讨论】:

  • 不清楚你在问什么。如果需要,可以使用 GnuWin 的 tail 端口。否则,我建议使用 -context 参数切换到 PowerShells Select-String。
  • 听起来您想要[Find|FindStr] /N 包含您的日期的第一行号,然后使用More +n 其中n 是相对于该行号。我相信您会找到使用中的两个命令的示例,以便您可以创建自己的代码并相应地更新您的问题;祝你好运!

标签: windows powershell batch-file tail


【解决方案1】:

这是一个完整的批处理文件示例,基于我所做的评论:

@For /F Delims^=: %%A In ('FindStr/NL "08/19/2017" "in.log"'
) Do @If Not Defined i (Set/A "i=%%A-1"&Call More +%%i%% "in.log">"out.log")

更改“in.log”和“out.log”文件的名称以及双引号08/19/2017之间的日期,以匹配您已知的名称、日期和格式。 p>

【讨论】:

  • 谢谢,此解决方案适用于远程连接并运行批处理文件。能够检索到所需的信息。将与客户核实,如果这令人满意或应该只适用于那一天,因为这可以在运行流程后很多天使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 2010-09-05
  • 2016-09-06
  • 1970-01-01
  • 2021-01-11
  • 1970-01-01
相关资源
最近更新 更多