Comment afficher un contenu de fichier texte dans CMD?


Réponses:


321

Vous pouvez utiliser la morecommande. Par exemple:

more filename.txt

Jetez un œil aux utilitaires GNU pour Win32 ou téléchargez-le :


En quoi est-ce similaire à tail -f? tail -f boucle pour toujours. Comment en avez-vous reproduit le -f?
Elie Saad

2
Cela ne répond pas à la question. Je ne sais pas pourquoi sa cote est si élevée. OP recherchait 2 choses - une alternative à windows pour cat et une alternative à tail -f. Si vous allez installer les utilitaires GNU pour Windows, vous pouvez alors utiliser ces choses.
gburton du

174

Nous pouvons utiliser la commande 'type' pour voir le contenu du fichier en cmd.

Exemple -

type abc.txt

Vous trouverez plus d'informations ICI .


J'aime cette réponse car elle n'est pas interactive. moreaffiche N écrans à la fois sur lesquels vous devez cliquer
user2023861

23

Je ne pense pas qu'il y ait une fonction intégrée pour cela

xxxx.txt > con

Cela ouvre les fichiers dans l'éditeur de texte par défaut dans Windows ...

type xxxx.txt

Cela affiche le fichier dans la fenêtre actuelle. Peut-être que cela a des paramètres que vous pouvez utiliser ...

Il y a une question similaire ici: script batch CMD.EXE pour afficher les 10 dernières lignes d'un fichier txt Il y a donc une commande "plus" pour afficher un fichier à partir de la ligne donnée, ou vous pouvez utiliser les utilitaires GNU pour Win32 ce que bryanph a suggéré dans son lien.


7

Vous pouvez utiliser la commande «plus» pour voir le contenu du fichier:

more filename.txt

2
Bienvenue dans StackOverflow et merci d'avoir essayé d'aider. Veuillez expliquer comment la version Windows de more peut être utilisée pour voir automatiquement les nouvelles lignes arrivant dans un fichier texte. Cela rendrait votre réponse plus directement liée à la question des OP, c'est-à-dire démontrer la compatibilité «queue -f» que OP souhaite.
Yunnosch

4

Utilisation d'une seule commande PowerShell pour récupérer la fin du fichier:

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

Il s'applique à PowerShell 3.0 et aux versions plus récentes.

Une autre option consiste à créer un fichier appelé TAIL.CMD avec ce code:

powershell -nologo "& "Get-Content -Wait %1 -Tail %2"

Cela fonctionne, mais c'est trop lent, car PowerShell peut prendre 2 ou 3 secondes pour démarrer.
Anic17

2

Pour ce faire, vous pouvez utiliser le shell de ligne de commande plus avancé de Microsoft appelé « Windows PowerShell ». Il devrait être standard sur les dernières versions de Windows, mais vous pouvez le télécharger auprès de Microsoft si vous ne l'avez pas déjà installé.

Pour obtenir les cinq dernières lignes du fichier texte, lisez simplement le fichier en utilisant Get-Content, puis Select-Objectchoisissez les cinq derniers éléments / lignes pour vous:

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

Source: utilisation de l'applet de commande Get-Content


La réponse de @Eyal est plus appropriée étant appelée à partir de la cmd, et le code utilise mieux Tail que la canalisation dans Select-Object. Vous ne pouvez pas faire -Attendre tout en faisant Select Object également. Ce n'est pas ce que le PO demande.
Elie Saad

1

Aucune option intégrée n'est disponible avec Windows. Pour surveiller en permanence les journaux, vous pouvez utiliser cette application gratuite BareTailPro .



1

Si vous souhaitez qu'il affiche le contenu du fichier en direct et se mette à jour lorsque le fichier est modifié, utilisez simplement ce script:

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

Cela se répétera pour toujours jusqu'à ce que vous fermiez la fenêtre cmd.


Cela ne reproduit pas la fonctionnalité de tail.
Preet Sangha

1

Vous pouvez le faire dans certaines méthodes:

L'un est la typecommande: type filename Un autre est la morecommande: more filename Avec morevous pouvez également le faire:type filename | more

La dernière option utilise un for for /f "usebackq delims=" %%A in (filename) do (echo.%%A) Cela ira pour chaque ligne et affichera son contenu. C'est un équivalent de la typecommande, mais c'est une autre méthode de lecture du contenu.

Si vous demandez quoi utiliser, utilisez la morecommande car elle fera une pause.


0

Si vous souhaitez afficher par exemple tous les noms de fichiers .config (ou .ini) et le contenu des fichiers dans un seul document pour référence utilisateur (et j'entends par là que l'utilisateur ne connaît pas la commande shell, c'est-à-dire 95% d'entre eux), vous pouvez essayer ceci:

FORFILES / M * myFile.ini / C "cmd / c echo Nom du fichier: @file >>% temp% \ stdout.txt && type @path >>% temp% \ stdout.txt && echo. >>% temp% \ stdout.txt "| tapez% temp% \ stdout.txt

Explication: - ForFiles: boucle sur un répertoire (et enfant, etc.) chaque fichier répondant aux critères - capable de renvoyer le nom de fichier en cours de traitement (@file) - capable de renvoyer le fichier de chemin complet en cours de traitement (@path) - Type: Sortie du contenu du fichier

Ps: La dernière commande pipe pointe le fichier% temp% et affiche le contenu agrégé. Si vous souhaitez copier / coller dans une documentation, ouvrez simplement le fichier stdout.txt dans le bloc de texte.

Bonne journée.


Veuillez utiliser le code de bloc `` `pour coller votre code, car il sera plus facile à lire.
Anic17

-1
tail -3 d:\text_file.txt

tail -1 d:\text_file.txt

Je suppose que cela a été ajouté à Windows cmd.exe à un moment donné.


2
non, tailn'est toujours pas une commande Windows standard. Habituellement, cela fait partie d'un addon comme cygwin, GNU ou autres.
Stephan

Ce n'est pas une bonne réponse, vous dites simplement que cela a été implémenté dans Windows, mais non, veuillez vérifier vos informations avant de répondre.
Anic17
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.