Como exibir um conteúdo de arquivo de texto no CMD?

Respostas:

321

Você pode usar o morecomando Por exemplo:

more filename.txt

Dê uma olhada nos utilitários GNU para Win32 ou faça o download :

limcy_at_mip
fonte
Como isso é semelhante ao tail -f? -f loops para sempre. Como você replicou o -f dele?
Elie Saad
2
Isso não responde à pergunta. Não sei por que está classificado tão alto. O OP estava procurando por duas coisas - uma alternativa ao Windows para gato e uma alternativa ao tail -f. Se você estiver instalando os utilitários GNU para Windows, poderá usá-los.
gburton
174

Podemos usar o comando 'type' para ver o conteúdo do arquivo em cmd.

Exemplo -

type abc.txt

Mais informações podem ser encontradas AQUI .

Anmol Saraf
fonte
Eu gosto desta resposta porque não é interativa. moremostra N telas de cada vez que você precisa clicar
user2023861
23

Eu não acho que exista uma função embutida para isso

xxxx.txt > con

Isso abre os arquivos no editor de texto padrão no Windows ...

type xxxx.txt

Isso exibe o arquivo na janela atual. Talvez isso tenha parâmetros que você possa usar ...

Há uma pergunta semelhante aqui: script em lote do CMD.EXE para exibir as últimas 10 linhas de um arquivo txt Portanto, existe um comando "more" para exibir um arquivo da linha especificada, ou você pode usar o GNU Utilities for Win32, sugerido pela bryanph no link dele.

inf3rno
fonte
7

Você pode usar o comando 'more' para ver o conteúdo do arquivo:

more filename.txt
H.Marroquin
fonte
2
Bem-vindo ao StackOverflow e obrigado por tentar ajudar. Por favor, explique como a versão Windows do more pode ser usada para ver automaticamente as linhas que chegam recentemente em um arquivo de texto. Isso tornaria sua resposta mais diretamente relacionada à pergunta do OP, ou seja, demonstrar a compatibilidade do OP "tail -f".
Yunnosch 5/06
4

Usando um único comando do PowerShell para recuperar o final do arquivo:

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

Aplica-se ao PowerShell 3.0 e mais recente.

Outra opção é criar um arquivo chamado TAIL.CMD com este código:

powershell -nologo "& "Get-Content -Wait %1 -Tail %2"
Eyal
fonte
Funciona, mas é muito lento, pois o PowerShell pode levar 2 ou 3 segundos para iniciar.
Anic17 21/06
2

Para fazer isso, você pode usar o shell de linha de comando mais avançado da Microsoft chamado " Windows PowerShell ". Ele deve vir como padrão nas versões mais recentes do Windows, mas você pode baixá-lo da Microsoft se ainda não o tiver instalado.

Para obter as últimas cinco linhas no arquivo de texto, basta ler o arquivo usando Get-Contente Select-Objectescolha os últimos cinco itens / linhas para você:

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

Origem: usando o cmdlet Get-Content

Michael Yaeger
fonte
A resposta do @Eyal é mais adequada sendo chamada do cmd, e o código é melhor usando Tail do que direcionando para Select-Object. Você não pode aguardar enquanto faz o Select Object também. Não é isso que o OP está solicitando.
Elie Saad
1

Não há opção integrada disponível no Windows. Para monitorar constantemente os logs, você pode usar este aplicativo gratuito BareTailPro .

Sudheej
fonte
1

Se você deseja exibir o conteúdo do arquivo ao vivo e atualizá-lo quando o arquivo for alterado, basta usar este script:

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

Isso será repetido para sempre até você fechar a janela do cmd.

Johnny G Gaming
fonte
Isso não replica a funcionalidade da cauda.
Preet Sangha
1

Você pode fazer isso em alguns métodos:

Um é o typecomando: type filename Outro é o morecomando: more filename Com morevocê também pode fazer isso:type filename | more

A última opção é usar a opção for for /f "usebackq delims=" %%A in (filename) do (echo.%%A) Isso irá para cada linha e exibirá seu conteúdo. Isso é equivalente ao typecomando, mas é outro método de leitura do conteúdo.

Se você está perguntando o que usar, use o morecomando, pois ele fará uma pausa.

Anic17
fonte
0

Se você deseja exibir, por exemplo, todo o nome de arquivo .config (ou .ini) e o conteúdo do arquivo em um documento para referência do usuário (e com isso quero dizer que o usuário não conhece o comando do shell, ou seja, 95% deles), tente:

FORFILES / M * myFile.ini / C "cmd / c echo Nome do arquivo: @file >>% temp% \ stdout.txt && digite @path >>% temp% \ stdout.txt && echo. >>% temp% \ stdout.txt "| digite% temp% \ stdout.txt

Explicação: - ForFiles: loop em um diretório (e filho, etc), cada arquivo que atende aos critérios - capaz de retornar o nome do arquivo atual que está sendo processado (@file) - capaz de retornar o arquivo de caminho completo que está sendo processado (@path) - Digite: Saída do conteúdo do arquivo

Ps: O último comando de pipe está apontando o arquivo% temp% e produz o conteúdo agregado. Se você deseja copiar / colar em alguma documentação, basta abrir o arquivo stdout.txt no bloco de texto.

Dia bom.

user11116047
fonte
Por favor, use o código de bloco `` `` para colar seu código, pois facilitará a leitura.
Anic17 21/06
-1
tail -3 d:\text_file.txt

tail -1 d:\text_file.txt

Presumo que isso foi adicionado ao Windows cmd.exe em algum momento.

noni
fonte
2
Não, tailainda não é um comando padrão do Windows. Geralmente faz parte de um addon como cygwin, GNU ou outros.
Stephan
Esta não é uma boa resposta, você está apenas dizendo que isso foi implementado no Windows, mas não, verifique suas informações antes de responder.
Anic17 14/06