398

I want to display the content of a text file in a CMD window. In addition, I want to see the new lines that added to file, like tail -f command in Unix.

2

14 Answers 14

551

You can use the more command. For example:

more filename.txt

Take a look at GNU utilities for Win32 or download it:

2
  • How is this similar to tail -f? tail -f loops forever. How did you replicate the -f of it?
    – Elie Saad
    Commented Jan 17, 2018 at 10:16
  • 8
    This doesnt answer the question. Not sure why its rated so high. OP was looking for 2 things - a windows alternative to cat, and an alternative to tail -f. If you're going to install the GNU utilities for windows, you can then use those things. Commented Apr 15, 2019 at 14:30
308

We can use the 'type' command to see file contents in cmd.

Example -

type abc.txt

More information can be found HERE.

1
  • 3
    I like this answer because it's not interactive. more shows N screens at a time that you have to click through Commented Dec 6, 2017 at 16:54
31

I don't think there is a built-in function for that

This displays the file in the current window (maybe this has params):

type xxxx.txt

This opens the files in the default text editor in windows:

xxxx.txt > con

There is a similar question here. So there is a "more" command to display a file from the given line, or you can use the GNU Utilities for Win32 what bryanph suggested in his link.

1
  • Hey may you tell me where the command > con is documented, I searched for it but couldn't find any :) anyways it is working fine ;)
    – Amr
    Commented Jun 19, 2023 at 3:54
29

To show content of a file:

type file.txt - cmd

cat file.txt - bash/powershell

14

You can use the 'more' command to see the content of the file:

more filename.txt
1
  • 4
    Welcome to StackOverflow and thanks for trying to help. Please explain how the windows version of more can be used to automatically see newly arriving lines in a text file. That would make your answer more directly relate to OPs question, i.e. demonstrate the "tail -f"-compatibility OP wants.
    – Yunnosch
    Commented Jun 5, 2017 at 19:59
7

Using a single PowerShell command to retrieve the file ending:

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

It applies to PowerShell 3.0 and newer.

Another option is to create a file called TAIL.CMD with this code:

powershell -nologo "& "Get-Content -Wait %1 -Tail %2"
1
  • It works, but it's too slow, as PowerShell may take 2 or 3 seconds to start.
    – Anic17
    Commented Jun 21, 2020 at 20:35
4

To do this, you can use Microsoft's more advanced command-line shell called "Windows PowerShell." It should come standard on the latest versions of Windows, but you can download it from Microsoft if you don't already have it installed.

To get the last five lines in the text file simply read the file using Get-Content, then have Select-Object pick out the last five items/lines for you:

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

Source: Using the Get-Content Cmdlet

1
  • @Eyal 's answer is more fitting being called from the cmd, and the code is better using Tail than piping into Select-Object. You can't do -Wait while doing Select Object as well. This is not what the OP is requesting.
    – Elie Saad
    Commented Jan 17, 2018 at 10:30
3

You can do that in some methods:

One is the type command: type filename Another is the more command: more filename With more you can also do that: type filename | more

The last option is using a for for /f "usebackq delims=" %%A in (filename) do (echo.%%A) This will go for each line and display it's content. This is an equivalent of the type command, but it's another method of reading the content.

If you are asking what to use, use the more command as it will make a pause.

3

You can use either more filename.[extension] or type filename.[extension]

enter image description here

2
  • 1
    try to give a more detailed explanation, and please update your image to load directly in StackOverflow Commented Jun 4, 2021 at 9:36
  • 1
    both commands were suggested several times before (and don't even answer the question). So this answer adds nothing but noise.
    – Stephan
    Commented Jun 4, 2021 at 9:40
2

If you want it to display the content of the file live, and update when the file is altered, just use this script:

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

That will repeat forever until you close the cmd window.

1
  • This does not replicate the functionality of tail. Commented Mar 11, 2018 at 20:57
1

There is no built in option available with Windows. To constantly monitor logs you can use this free application BareTailPro.

1

You can get the TAIL utility from the Windows Server 2003 Resource Kit Tools.

Here are additional details -- Tail command for Windows (CMD).

1
  • Link only answers should be posted as comments
    – NSNoob
    Commented Feb 8, 2016 at 13:44
0

If you want to display for example all .config (or .ini) file name and file content into one doc for user reference (and by this I mean user not knowing shell command i.e. 95% of them), you can try this :

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

Explanation :

  • ForFiles : loop on a directory (and child, etc) each file meeting criteria
    • able to return the current file name being process (@file)
    • able to return the full path file being process (@path)
  • Type : Output the file content

Ps : The last pipe command is pointing the %temp% file and output the aggregate content. If you wish to copy/paste in some documentation, just open the stdout.txt file in textpad.

0
-2
tail -3 d:\text_file.txt

tail -1 d:\text_file.txt

I assume this was added to Windows cmd.exe at some point.

2
  • 2
    no, tail is still not a standard windows command. Usually it's part of an addon like cygwin, GNU or others.
    – Stephan
    Commented Jan 29, 2016 at 14:20
  • This is not a good answer, you are just saying that this has been implemented into Windows, but no, please check your information before answering.
    – Anic17
    Commented Jun 14, 2020 at 16:03

Not the answer you're looking for? Browse other questions tagged or ask your own question.