Como exibir um conteúdo de arquivo de texto no CMD?
227
Quero exibir o conteúdo de um arquivo de texto em uma janela CMD. Além disso, quero ver as novas linhas adicionadas ao arquivo, como o tail -fcomando no Unix.
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.
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:
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ê:
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 .
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 forfor /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.
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.
Respostas:
Você pode usar o
more
comando Por exemplo:Dê uma olhada nos utilitários GNU para Win32 ou faça o download :
fonte
Podemos usar o comando 'type' para ver o conteúdo do arquivo em cmd.
Exemplo -
Mais informações podem ser encontradas AQUI .
fonte
more
mostra N telas de cada vez que você precisa clicarEu não acho que exista uma função embutida para isso
Isso abre os arquivos no editor de texto padrão no Windows ...
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.
fonte
Você pode usar o comando 'more' para ver o conteúdo do arquivo:
fonte
Usando um único comando do PowerShell para recuperar o final do arquivo:
Aplica-se ao PowerShell 3.0 e mais recente.
Outra opção é criar um arquivo chamado TAIL.CMD com este código:
fonte
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-Content
eSelect-Object
escolha os últimos cinco itens / linhas para você:Origem: usando o cmdlet Get-Content
fonte
Não há opção integrada disponível no Windows. Para monitorar constantemente os logs, você pode usar este aplicativo gratuito BareTailPro .
fonte
Você pode obter o utilitário TAIL nas Ferramentas do Windows Server 2003 Resource Kit .
Aqui estão detalhes adicionais - Comando de cauda para Windows (CMD) .
fonte
Se você deseja exibir o conteúdo do arquivo ao vivo e atualizá-lo quando o arquivo for alterado, basta usar este script:
Isso será repetido para sempre até você fechar a janela do cmd.
fonte
Você pode fazer isso em alguns métodos:
Um é o
type
comando:type filename
Outro é omore
comando:more filename
Commore
você 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 aotype
comando, mas é outro método de leitura do conteúdo.Se você está perguntando o que usar, use o
more
comando, pois ele fará uma pausa.fonte
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.
fonte
Presumo que isso foi adicionado ao Windows cmd.exe em algum momento.
fonte
tail
ainda não é um comando padrão do Windows. Geralmente faz parte de um addon como cygwin, GNU ou outros.