¿Cómo visualizo el contenido de un archivo de texto en CMD?

Respuestas:

321

Puedes usar el morecomando. Por ejemplo:

more filename.txt

Eche un vistazo a las utilidades de GNU para Win32 o descárguelo :

limcy_at_mip
fuente
¿En qué se parece esto a tail -f? cola -f bucles para siempre. ¿Cómo replicaste el -f de eso?
Elie Saad
2
Esto no responde la pregunta. No estoy seguro de por qué está clasificado tan alto. OP estaba buscando 2 cosas: una alternativa de Windows a cat y una alternativa a tail -f. Si va a instalar las utilidades GNU para Windows, puede usar esas cosas.
gburton
174

Podemos usar el comando 'tipo' para ver el contenido del archivo en cmd.

Ejemplo

type abc.txt

Más información se puede encontrar AQUÍ .

Anmol Saraf
fuente
Me gusta esta respuesta porque no es interactiva. moremuestra N pantallas en un momento en el que tiene que hacer clic
user2023861
23

No creo que haya una función incorporada para eso

xxxx.txt > con

Esto abre los archivos en el editor de texto predeterminado en Windows ...

type xxxx.txt

Esto muestra el archivo en la ventana actual. Tal vez esto tiene parámetros que puedes usar ...

Aquí hay una pregunta similar: secuencia de comandos por lotes CMD.EXE para mostrar las últimas 10 líneas de un archivo txt Por lo tanto, hay un comando "más" para mostrar un archivo desde la línea dada, o puede usar las Utilidades GNU para Win32, lo que sugirió bryanph en su enlace

inf3rno
fuente
7

Puede usar el comando 'más' para ver el contenido del archivo:

more filename.txt
H.Marroquin
fuente
2
Bienvenido a StackOverflow y gracias por intentar ayudar. Explique cómo se puede usar la versión de Windows de more para ver automáticamente las líneas recién llegadas en un archivo de texto. Eso haría que su respuesta se relacione más directamente con la pregunta de los OP, es decir, demuestre la compatibilidad "cola -f" que quiere el OP.
Yunnosch
4

Usando un solo comando de PowerShell para recuperar el final del archivo:

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

Se aplica a PowerShell 3.0 y versiones posteriores.

Otra opción es crear un archivo llamado TAIL.CMD con este código:

powershell -nologo "& "Get-Content -Wait %1 -Tail %2"
Eyal
fuente
Funciona, pero es demasiado lento, ya que PowerShell puede tardar 2 o 3 segundos en iniciarse.
Anic17
2

Para hacer esto, puede usar el shell de línea de comandos más avanzado de Microsoft llamado " Windows PowerShell ". Debería ser estándar en las últimas versiones de Windows, pero puede descargarlo de Microsoft si aún no lo tiene instalado.

Para obtener las últimas cinco líneas en el archivo de texto, simplemente lea el archivo usando Get-Content, luego Select-Objectelija los últimos cinco elementos / líneas para usted:

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

Fuente: uso del cmdlet Get-Content

Michael Yaeger
fuente
La respuesta de @Eyal es más apropiada desde el cmd, y el código es mejor usando Tail que canalizando en Select-Object. No puedes hacer -Wait mientras haces Select Object también. Esto no es lo que solicita el OP.
Elie Saad
1

No hay una opción integrada disponible con Windows. Para monitorear constantemente los registros, puede usar esta aplicación gratuita BareTailPro .

Sudheej
fuente
1

Si desea que muestre el contenido del archivo en vivo y se actualice cuando se modifique el archivo, simplemente use este script:

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

Eso se repetirá para siempre hasta que cierre la ventana de cmd.

Johnny G Gaming
fuente
Esto no replica la funcionalidad de la cola.
Saludo Sangha
1

Puedes hacerlo de alguna manera:

Uno es el typecomando: type filename Otro es el morecomando: more filename Con moreusted también puede hacer eso:type filename | more

La última opción es usar for for /f "usebackq delims=" %%A in (filename) do (echo.%%A) Esto irá para cada línea y mostrará su contenido. Este es un equivalente del typecomando, pero es otro método para leer el contenido.

Si está preguntando qué usar, use el morecomando ya que hará una pausa.

Anic17
fuente
0

Si desea mostrar, por ejemplo, todo el nombre de archivo .config (o .ini) y el contenido del archivo en un documento para referencia del usuario (y con esto quiero decir que el usuario no conoce el comando de shell, es decir, el 95% de ellos), puede intentar esto:

FORFILES / M * myFile.ini / C "cmd / c echo Nombre del archivo: @file >>% temp% \ stdout.txt && type @path >>% temp% \ stdout.txt && echo. >>% temp% \ stdout.txt "| escriba% temp% \ stdout.txt

Explicación: - ForFiles: bucle en un directorio (y secundario, etc.) cada archivo cumple con los criterios - capaz de devolver el nombre del archivo actual que se está procesando (@file) - capaz de devolver el archivo de ruta completa en proceso (@path) - Tipo: Salida del contenido del archivo

Ps: el último comando de canalización apunta al archivo% temp% y genera el contenido agregado. Si desea copiar / pegar en alguna documentación, simplemente abra el archivo stdout.txt en el teclado de texto.

Buen día.

usuario11116047
fuente
Utilice el código de bloque `` '' para pegar su código, ya que será más fácil de leer.
Anic17
-1
tail -3 d:\text_file.txt

tail -1 d:\text_file.txt

Supongo que esto se agregó a Windows cmd.exe en algún momento.

noni
fuente
2
no, tailtodavía no es un comando estándar de Windows. Por lo general, es parte de un complemento como cygwin, GNU u otros.
Stephan
Esta no es una buena respuesta, solo está diciendo que se ha implementado en Windows, pero no, verifique su información antes de responder.
Anic17