ChatGPT解决这个技术问题 Extra ChatGPT

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

cmd

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

如果这些答案之一解决了您的问题,请标记答案。

P
Peter Mortensen

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

more filename.txt

看看 GNU utilities for Win32download it


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

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

例子 -

type abc.txt

可以在 HERE 中找到更多信息。


我喜欢这个答案,因为它不是交互式的。 more 一次显示 N 个屏幕,您必须点击进入
C
Community

我认为没有内置功能

xxxx.txt > con

这将在 Windows 的默认文本编辑器中打开文件...

type xxxx.txt

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

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


L
LaurentBaj

显示文件内容:

type file.txt - cmd

cat file.txt - bash/powershell


P
Peter Mortensen

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

more filename.txt

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

使用单个 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 秒才能启动。
A
Anic17

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

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

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

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


M
Michael Yaeger

为此,您可以使用 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 所要求的。
P
Peter Mortensen

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

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

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


这不会复制 tail 的功能。
P
Peter Mortensen

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


P
Peter Mortensen

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

以下是其他详细信息 -- Tail command for Windows (CMD)


仅链接的答案应作为评论发布
A
Anic17

例如,如果您想将所有 .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)

能够返回正在处理的当前文件名(@file)

能够返回正在处理的完整路径文件(@path)

类型:输出文件内容

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


S
StupidWolf

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

https://i.stack.imgur.com/wTOP4.png


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

tail -1 d:\text_file.txt

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


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