Як відобразити вміст текстового файлу в CMD?


227

Я хочу відобразити вміст текстового файлу у вікні CMD. Крім того, я хочу побачити нові рядки, які додані до файлу, як tail -fкоманда в Unix.



Якщо одна з цих відповідей вирішила вашу проблему, будь ласка, позначте відповідь.
Майкл Йегер

Відповіді:


321

Ви можете використовувати moreкоманду. Наприклад:

more filename.txt

Погляньте на утиліти GNU для Win32 або скачайте :


Як це схоже на хвіст -f? хвіст -f петлі назавжди. Як ти повторив -f?
Елі Саад

2
Це не відповідає на питання. Не впевнений, чому його так високо оцінили. ОП шукала 2 речі - альтернативу вікну коту та альтернативу хвосту -f. Якщо ви збираєтесь встановлювати утиліти GNU для Windows, ви можете використовувати ці речі.
gburton

174

Ми можемо використовувати команду 'type', щоб побачити вміст файлу в cmd.

Приклад -

type abc.txt

Більше інформації можна знайти ТУТ .


Мені подобається ця відповідь, тому що вона не є інтерактивною. moreпоказує N екранів за той час, на який потрібно натиснути
user2023861

23

Я не думаю, що для цього є вбудована функція

xxxx.txt > con

Це відкриває файли у текстовому редакторі за замовчуванням у Windows ...

type xxxx.txt

Це відображає файл у поточному вікні. Можливо, у цьому є парами, якими ви можете скористатися ...

Тут є аналогічне запитання: пакетний скрипт CMD.EXE для відображення останніх 10 рядків з txt-файлу. Отже, є команда "більше" для відображення файлу з даного рядка, або ви можете використовувати утиліти GNU для Win32, що запропонував bryanph у його посиланні.


7

Ви можете скористатися командою 'more', щоб переглянути вміст файлу:

more filename.txt

2
Ласкаво просимо до StackOverflow та дякуємо за спробу допомогти. Поясніть, будь ласка, як версію Windows більше можна використовувати для автоматичного перегляду новоприбулих рядків у текстовому файлі. Це зробило б вашу відповідь більшою мірою пов’язаною з питанням про ОП, тобто продемонструвало б "хвіст -f"-сумісність, яку хоче ОП.
Yunnosch

4

Використання однієї команди 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 секунди.
Anic17

2

Для цього можна скористатися вдосконаленою оболонкою командного рядка Microsoft під назвою " Windows PowerShell ". Він повинен бути стандартним для останніх версій Windows, але ви можете завантажити його з Microsoft, якщо у вас його ще немає.

Щоб отримати останні п’ять рядків у текстовому файлі, просто прочитайте файл за допомогою Get-Content, а потім Select-Objectвиділіть для вас останні п’ять елементів / рядків:

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

Джерело: Використання командлета Get-Content


Відповідь @Eyal більше підходить для виклику з cmd, і код краще використовувати Tail, ніж з'єднання в Select-Object. Ви не можете робити-Зачекайте, виконуючи також Select Object. Цього не вимагає ОП.
Елі Саад

1

У Windows немає вбудованої опції. Для постійного моніторингу журналів ви можете використовувати цей безкоштовний додаток BareTailPro .



1

Якщо ви хочете, щоб він відображав вміст файлу в прямому ефірі та оновлювався, коли файл змінено, просто використовуйте цей скрипт:

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

Це буде повторюватися назавжди, поки ви не закриєте вікно cmd.


Це не повторює функціональність хвоста.
Преет Сангха

1

Це можна зробити в деяких методах:

Одне - це typeкоманда: type filename Інше - це moreкоманда: more filename З цим moreви також можете зробити це:type filename | more

Останній варіант - використання параметра " for for /f "usebackq delims=" %%A in (filename) do (echo.%%A) Це буде" для кожного рядка та відображатиме його вміст. Це еквівалент typeкоманди, але це ще один метод читання вмісту.

Якщо ви запитуєте, що використовувати, використовуйте moreкоманду, оскільки вона зробить паузу.


0

Якщо ви хочете, наприклад, відобразити всі .config (або.

FORFILES / M * myFile.ini / C "cmd / c echo Назва файлу: @file >>% temp% \ stdout.txt && type @path >>% temp% \ stdout.txt && echo. >>% temp% \ stdout.txt "| введіть% temp% \ stdout.txt

Пояснення: - ForFiles: циклічність у каталозі (і дочірній і т. Д.), Кожен критерій відповідності файлу - здатний повернути поточне ім'я файлу, що обробляється (@file) - здатний повернути повний файл, який обробляється (@path) - Тип: Виведіть вміст файлу

Ps: Остання команда труби вказує на файл% temp% та виводить сукупний вміст. Якщо ви хочете скопіювати / вставити в якусь документацію, просто відкрийте файл stdout.txt у текстовій панелі.

Хороший день.


Будь ласка, використовуйте блок-код `` `, щоб вставити свій код, оскільки це полегшить читання.
Anic17

-1
tail -3 d:\text_file.txt

tail -1 d:\text_file.txt

Я припускаю, що це було додано до Windows cmd.exe в якийсь момент.


2
ні, tailдосі не є стандартною командою Windows. Зазвичай це частина додатка, як cygwin, GNU або інші.
Стефан

Це не гарна відповідь, ви просто говорите, що це було впроваджено в Windows, але ні, будь ласка, перевірте свою інформацію, перш ніж відповісти.
Anic17
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.