Comment afficher un contenu de fichier texte dans CMD?
227
Je souhaite afficher le contenu d'un fichier texte dans une fenêtre CMD. De plus, je veux voir les nouvelles lignes ajoutées au fichier, comme la tail -fcommande sous Unix.
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.
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:
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:
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 .
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 forfor /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.
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.
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.
Réponses:
Vous pouvez utiliser la
more
commande. Par exemple:Jetez un œil aux utilitaires GNU pour Win32 ou téléchargez-le :
la source
Nous pouvons utiliser la commande 'type' pour voir le contenu du fichier en cmd.
Exemple -
Vous trouverez plus d'informations ICI .
la source
more
affiche N écrans à la fois sur lesquels vous devez cliquerJe ne pense pas qu'il y ait une fonction intégrée pour cela
Cela ouvre les fichiers dans l'éditeur de texte par défaut dans Windows ...
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.
la source
Vous pouvez utiliser la commande «plus» pour voir le contenu du fichier:
la source
Utilisation d'une seule commande PowerShell pour récupérer la fin du fichier:
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:
la source
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
, puisSelect-Object
choisissez les cinq derniers éléments / lignes pour vous:Source: utilisation de l'applet de commande Get-Content
la source
Aucune option intégrée n'est disponible avec Windows. Pour surveiller en permanence les journaux, vous pouvez utiliser cette application gratuite BareTailPro .
la source
Vous pouvez obtenir l'utilitaire TAIL à partir des outils du Kit de ressources Windows Server 2003 .
Voici des détails supplémentaires - Commande Tail pour Windows (CMD) .
la source
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:
Cela se répétera pour toujours jusqu'à ce que vous fermiez la fenêtre cmd.
la source
Vous pouvez le faire dans certaines méthodes:
L'un est la
type
commande:type filename
Un autre est lamore
commande:more filename
Avecmore
vous 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 latype
commande, mais c'est une autre méthode de lecture du contenu.Si vous demandez quoi utiliser, utilisez la
more
commande car elle fera une pause.la source
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.
la source
Je suppose que cela a été ajouté à Windows cmd.exe à un moment donné.
la source
tail
n'est toujours pas une commande Windows standard. Habituellement, cela fait partie d'un addon comme cygwin, GNU ou autres.