Jak wyświetlić zawartość pliku tekstowego w CMD?

Odpowiedzi:

321

Możesz użyć morepolecenia. Na przykład:

more filename.txt

Spójrz na narzędzia GNU dla Win32 lub pobierz je :

limcy_at_mip
źródło
Jak to jest podobne do tail -f? ogon-f zapętla się na zawsze. Jak zreplikowałeś -f z tego?
Elie Saad
2
To nie odpowiada na pytanie. Nie jestem pewien, dlaczego jest tak wysoko oceniany. OP szukał 2 rzeczy - alternatywy dla systemu Windows dla kota i alternatywy dla tail -f. Jeśli zamierzasz zainstalować narzędzia GNU dla systemu Windows, możesz użyć tych rzeczy.
gburton,
174

Możemy użyć polecenia „typ”, aby zobaczyć zawartość pliku w cmd.

Przykład -

type abc.txt

Więcej informacji można znaleźć TUTAJ .

Anmol Saraf
źródło
Podoba mi się ta odpowiedź, ponieważ nie jest interaktywna. morewyświetla N ekranów w tym momencie, przez który należy kliknąć
użytkownik2023861,
23

Nie sądzę, że jest do tego wbudowana funkcja

xxxx.txt > con

Spowoduje to otwarcie plików w domyślnym edytorze tekstu w systemie Windows ...

type xxxx.txt

Wyświetla plik w bieżącym oknie. Może ma to parametry, których możesz użyć ...

Tutaj jest podobne pytanie: skrypt wsadowy CMD.EXE do wyświetlania ostatnich 10 wierszy z pliku txt Tak więc istnieje polecenie „więcej”, aby wyświetlić plik z podanej linii, lub możesz użyć GNU Utilities dla Win32, co sugerował bryanph w swoim linku.

inf3rno
źródło
7

Możesz użyć polecenia „więcej”, aby zobaczyć zawartość pliku:

more filename.txt
H.Marroquin
źródło
2
Witamy w StackOverflow i dziękuję za próbę pomocy. Wyjaśnij, w jaki sposób można użyć wersji Windows więcej, aby automatycznie zobaczyć nowo przybyłe linie w pliku tekstowym. To sprawiłoby, że twoja odpowiedź byłaby bardziej bezpośrednio związana z pytaniem dotyczącym PO, tzn. Wykazałaby zgodność „tail-f”, jakiej chce OP.
Yunnosch
4

Za pomocą jednej komendy PowerShell, aby pobrać plik kończący się:

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

Dotyczy to PowerShell 3.0 i nowszych.

Inną opcją jest utworzenie pliku o nazwie TAIL.CMD z tym kodem:

powershell -nologo "& "Get-Content -Wait %1 -Tail %2"
Eyal
źródło
Działa, ale jest zbyt wolny, ponieważ uruchomienie programu PowerShell może potrwać 2–3 sekundy.
Anic17
2

Aby to zrobić, możesz użyć bardziej zaawansowanej powłoki wiersza polecenia firmy Microsoft o nazwie „ Windows PowerShell ”. Powinien być standardowo dostępny w najnowszych wersjach systemu Windows, ale możesz go pobrać z firmy Microsoft, jeśli jeszcze go nie masz.

Aby uzyskać ostatnie pięć wierszy w pliku tekstowym, po prostu przeczytaj plik za pomocą Get-Content, a następnie Select-Objectwybierz dla ciebie pięć ostatnich elementów / linii:

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

Źródło: Korzystanie z polecenia cmdlet Get-Content

Michael Yaeger
źródło
Odpowiedź @Eyala jest bardziej odpowiednia, gdy wywoływana jest z cmd, a kod lepiej jest używać Tail niż pipowania do Select-Object. Nie możesz też zrobić -Czekaj podczas wykonywania Wybierz obiekt. Nie tego wymaga OP.
Elie Saad
1

W systemie Windows nie ma wbudowanej opcji. Aby stale monitorować dzienniki, możesz skorzystać z tej bezpłatnej aplikacji BareTailPro .

Sudheej
źródło
1

Jeśli chcesz, aby wyświetlała zawartość pliku na żywo i aktualizowała się po zmianie pliku, użyj tego skryptu:

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

To będzie powtarzane na zawsze, dopóki nie zamkniesz okna cmd.

Johnny G Gaming
źródło
Nie powiela to funkcjonalności ogona.
Preet Sangha,
1

Możesz to zrobić na kilka sposobów:

Jednym z nich jest typepolecenie: type filename Drugim jest morepolecenie: more filename Z moretobą możesz również to zrobić:type filename | more

Ostatnią opcją jest użycie for for /f "usebackq delims=" %%A in (filename) do (echo.%%A) To pójdzie do każdej linii i wyświetli jej zawartość. Jest to odpowiedniktype polecenia, ale jest to kolejna metoda odczytywania treści.

Jeśli pytasz, czego użyć, użyj morepolecenia, ponieważ spowoduje to pauzę.

Anic17
źródło
0

Jeśli chcesz wyświetlić na przykład wszystkie nazwy plików .config (lub .ini) i zawartość pliku w jednym dokumencie w celu odniesienia do nich przez użytkownika (a przez to mam na myśli, że użytkownik nie zna polecenia powłoki, tj. 95% z nich), możesz spróbować:

FORFILES / M * myFile.ini / C "cmd / c echo Nazwa pliku: @file >>% temp% \ stdout.txt && typ @path >>% temp% \ stdout.txt && echo. >>% temp% \ stdout.txt "| wpisz% temp% \ stdout.txt

Objaśnienie: - ForFiles: zapętla katalog (i dziecko itp.) Każdy plik spełniający kryteria - może zwrócić bieżącą nazwę przetwarzanego pliku (@plik) - może zwrócić przetwarzany plik pełnej ścieżki (@ ścieżka) - Typ: Wyjście zawartości pliku

Ps: Ostatnie polecenie potoku wskazuje plik% temp% i wyprowadza zagregowaną zawartość. Jeśli chcesz skopiować / wkleić jakąś dokumentację, po prostu otwórz plik stdout.txt w textpad.

Dobry dzień.

użytkownik11116047
źródło
Proszę użyć kodu blokowego `` '', aby wkleić kod, ponieważ ułatwi to odczytanie.
Anic17
-1
tail -3 d:\text_file.txt

tail -1 d:\text_file.txt

Zakładam, że w pewnym momencie został on dodany do Windows cmd.exe.

noni
źródło
2
nie, tailnadal nie jest standardowym poleceniem systemu Windows. Zwykle jest częścią dodatku takiego jak cygwin, GNU lub inne.
Stephan
To nie jest dobra odpowiedź, po prostu mówisz, że została zaimplementowana w systemie Windows, ale nie, sprawdź swoje informacje przed odpowiedzią.
Anic17