【问题标题】:How do I display a text file content in CMD?如何在 CMD 中显示文本文件内容?
【发布时间】:2013-06-17 12:52:15
【问题描述】:

我想在 CMD 窗口中显示文本文件的内容。此外,我想查看添加到文件中的新行,例如 Unix 中的 tail -f 命令。

【问题讨论】:

标签: cmd


【解决方案1】:

您可以使用more 命令。例如:

more filename.txt

看看GNU utilities for Win32download it

【讨论】:

  • 这和tail -f有什么相似之处? tail -f 永远循环。你是如何复制它的 -f 的?
  • 这不能回答问题。不知道为什么它的评价这么高。 OP 正在寻找两件事 - 一个替代 cat 的 windows 和一个 tail -f 的替代品。如果您要为 windows 安装 GNU 实用程序,那么您可以使用这些东西。
【解决方案2】:

我们可以使用 'type' 命令在 cmd 中查看文件内容。

例子-

type abc.txt

更多信息可以在HERE找到。

【讨论】:

  • 我喜欢这个答案,因为它不是交互式的。 more 一次显示 N 个屏幕,您必须点击进入
【解决方案3】:

我认为没有内置函数

xxxx.txt > con

这会在 windows 的默认文本编辑器中打开文件...

type xxxx.txt

这会在当前窗口中显示文件。也许这有你可以使用的参数......

这里有一个类似的问题:CMD.EXE batch script to display last 10 lines from a txt file 因此,有一个“更多”命令来显示给定行中的文件,或者您可以使用 bryanph 在他的链接中建议的 GNU Utilities for Win32。

【讨论】:

    【解决方案4】:

    显示文件内容:

    type file.txt - cmd

    cat file.txt - bash/powershell

    【讨论】:

      【解决方案5】:

      可以使用'more'命令查看文件内容:

      more filename.txt
      

      【讨论】:

      • 欢迎来到 StackOverflow 并感谢您提供帮助。请解释如何使用 windows 版本的 more 自动查看文本文件中新到达的行。这将使您的答案更直接地与 OP 问题相关,即展示 OP 想要的“tail -f”兼容性。
      【解决方案6】:

      使用单个 PowerShell 命令检索文件结尾:

      powershell -nologo "& "Get-Content -Wait c:\logFile.log -Tail 10"
      

      它适用于 PowerShell 3.0 及更高版本。

      另一种选择是使用以下代码创建一个名为 TAIL.CMD 的文件:

      powershell -nologo "& "Get-Content -Wait %1 -Tail %2"
      

      【讨论】:

      • 它可以工作,但速度太慢,因为 PowerShell 可能需要 2 或 3 秒才能启动。
      【解决方案7】:

      为此,您可以使用 Microsoft 更高级的命令行 shell,称为“Windows PowerShell”。它应该是最新版本 Windows 的标准配置,但如果您还没有安装它,您可以download it from Microsoft

      要获取文本文件中的最后五行,只需使用Get-Content 读取文件,然后让Select-Object 为您挑选最后五个项目/行:

      Get-Content c:\scripts\test.txt | Select-Object -last 5
      

      来源:Using the Get-Content Cmdlet

      【讨论】:

      • @Eyal 的答案更适合从 cmd 调用,并且使用 Tail 的代码比管道进入 Select-Object 更好。在执行 Select Object 时也不能执行 -Wait。这不是 OP 所要求的。
      【解决方案8】:

      如果您希望它实时显示文件内容,并在文件更改时更新,只需使用此脚本:

      @echo off
      :start
      cls
      type myfile.txt
      goto start
      

      这将永远重复,直到您关闭 cmd 窗口。

      【讨论】:

      • 这不会复制tail的功能。
      【解决方案9】:

      你可以通过一些方法做到这一点:

      一个是type 命令:type filename 另一个是more 命令:more filename 使用more,您也可以这样做:type filename | more

      最后一个选项是使用for for /f "usebackq delims=" %%A in (filename) do (echo.%%A) 这将适用于每一行并显示其内容。这相当于type 命令,但它是另一种读取内容的方法。

      如果您询问使用什么,请使用more 命令,因为它会暂停。

      【讨论】:

        【解决方案10】:

        Windows 没有可用的内置选项。要持续监控日志,您可以使用此免费应用程序BareTailPro

        【讨论】:

          【解决方案11】:

          您可以从Windows Server 2003 Resource Kit Tools 获取 TAIL 实用程序。

          这里有更多详细信息 -- Tail command for Windows (CMD)

          【讨论】:

          • 仅链接的答案应作为 cmets 发布
          【解决方案12】:

          如果您想将所有.config(或.ini)文件名和文件内容显示到一个文档中以供用户参考(我的意思是用户不知道shell命令,即其中95%),您可以试试这个:

          FORFILES /M *myFile.ini /C "cmd /c echo File name : @file >> %temp%\stdout.txt && type @path >> %temp%\stdout.txt && echo. >> %temp%\stdout.txt" | type %temp%\stdout.txt
          

          解释:

          • ForFiles : 在目录(和子等)上循环每个满足条件的文件
            • 能够返回正在处理的当前文件名 (@file)
            • 能够返回正在处理的完整路径文件 (@path)
          • 类型:输出文件内容

          Ps : 最后一个管道命令指向%temp% 文件并输出聚合内容。如果您想复制/粘贴某些文档,只需在 textpad 中打开 stdout.txt 文件即可。

          【讨论】:

            【解决方案13】:

            您可以使用更多文件名。[扩展名]或键入文件名。[扩展名]

            【讨论】:

            • 尝试给出更详细的解释,并请更新您的图像以直接在 StackOverflow 中加载
            • 这两个命令之前都被建议了好几次(甚至没有回答这个问题)。所以这个答案只会增加噪音。
            【解决方案14】:
            tail -3 d:\text_file.txt
            
            tail -1 d:\text_file.txt
            

            我假设这是在某个时候添加到 Windows cmd.exe 中的。

            【讨论】:

            • 不,tail 仍然不是标准的 windows 命令。通常它是 cygwin、GNU 或其他插件的一部分。
            • 这不是一个好的答案,你只是说这已经在Windows中实现了,但是没有,请在回答之前检查你的信息。
            猜你喜欢
            • 1970-01-01
            • 2013-03-20
            • 1970-01-01
            • 2020-11-24
            • 1970-01-01
            • 1970-01-01
            • 2020-02-08
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多