如何在 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 中显示文本文件内容?的主要内容,如果未能解决你的问题,请参考以下文章