如何在 CMD 中显示文本文件内容?

Posted

技术标签:

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

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

【问题讨论】:

***.com/questions/187587/… 如果这些答案之一解决了您的问题,请标记答案。 Looking for a windows equivalent of the unix tail command的可能重复 【参考方案1】:

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

more filename.txt

看看GNU utilities for Win32或download 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

【讨论】:

欢迎来到 *** 并感谢您提供帮助。请解释如何使用 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】:

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

【讨论】:

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

tail -1 d:\text_file.txt

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

【讨论】:

不,tail 仍然不是标准的 windows 命令。通常它是 cygwin、GNU 或其他插件的一部分。 这不是一个好的答案,你只是说这已经在Windows中实现了,但是没有,请在回答之前检查你的信息。

以上是关于如何在 CMD 中显示文本文件内容?的主要内容,如果未能解决你的问题,请参考以下文章

cmd添加列内容文件

如何用批处理替换文本内容?

VB如何把文件内容显示在文本框中?

PHP:如何在我的页面上显示文本文件的内容?

在vb中如何一次性地将文件内容读取到文本框

在VB中,如何在按下按钮后,读取INI或者TXT文件中的内容并显示在文本框中?