¿Cómo visualizo el contenido de un archivo de texto en CMD?
227
Quiero mostrar el contenido de un archivo de texto en una ventana CMD. Además, quiero ver las nuevas líneas que se agregaron al archivo, como el tail -fcomando en Unix.
¿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.
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:
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:
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 .
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 forfor /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.
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.
Respuestas:
Puedes usar el
more
comando. Por ejemplo:Eche un vistazo a las utilidades de GNU para Win32 o descárguelo :
fuente
Podemos usar el comando 'tipo' para ver el contenido del archivo en cmd.
Ejemplo
Más información se puede encontrar AQUÍ .
fuente
more
muestra N pantallas en un momento en el que tiene que hacer clicNo creo que haya una función incorporada para eso
Esto abre los archivos en el editor de texto predeterminado en Windows ...
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
fuente
Puede usar el comando 'más' para ver el contenido del archivo:
fuente
Usando un solo comando de PowerShell para recuperar el final del archivo:
Se aplica a PowerShell 3.0 y versiones posteriores.
Otra opción es crear un archivo llamado TAIL.CMD con este código:
fuente
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
, luegoSelect-Object
elija los últimos cinco elementos / líneas para usted:Fuente: uso del cmdlet Get-Content
fuente
No hay una opción integrada disponible con Windows. Para monitorear constantemente los registros, puede usar esta aplicación gratuita BareTailPro .
fuente
Puede obtener la utilidad TAIL de las Herramientas del Kit de recursos de Windows Server 2003 .
Aquí hay detalles adicionales: comando Tail para Windows (CMD) .
fuente
Si desea que muestre el contenido del archivo en vivo y se actualice cuando se modifique el archivo, simplemente use este script:
Eso se repetirá para siempre hasta que cierre la ventana de cmd.
fuente
Puedes hacerlo de alguna manera:
Uno es el
type
comando:type filename
Otro es elmore
comando:more filename
Conmore
usted 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 deltype
comando, pero es otro método para leer el contenido.Si está preguntando qué usar, use el
more
comando ya que hará una pausa.fuente
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.
fuente
Supongo que esto se agregó a Windows cmd.exe en algún momento.
fuente
tail
todavía no es un comando estándar de Windows. Por lo general, es parte de un complemento como cygwin, GNU u otros.