Wie zeige ich den Inhalt einer Textdatei in CMD an?
227
Ich möchte den Inhalt einer Textdatei in einem CMD-Fenster anzeigen. Außerdem möchte ich die neuen Zeilen sehen, die der Datei hinzugefügt wurden, wie z tail -f. B. den Befehl in Unix.
Wie ist das ähnlich wie Schwanz -f? Schwanz-f-Schleifen für immer. Wie haben Sie das -f davon repliziert?
Elie Saad
2
Dies beantwortet die Frage nicht. Ich bin mir nicht sicher, warum es so hoch bewertet wurde. OP suchte nach zwei Dingen - einer Windows-Alternative zu cat und einer Alternative zu tail -f. Wenn Sie die GNU-Dienstprogramme für Windows installieren möchten, können Sie diese Dinge verwenden.
Gburton
174
Wir können den Befehl 'type' verwenden, um den Dateiinhalt in cmd anzuzeigen.
Willkommen bei StackOverflow und vielen Dank, dass Sie versucht haben zu helfen. Bitte erläutern Sie, wie die Windows-Version von more verwendet werden kann, um neu ankommende Zeilen in einer Textdatei automatisch anzuzeigen. Dadurch würde sich Ihre Antwort direkter auf die Frage des OP beziehen, dh die von OP gewünschte "tail-f" -Kompatibilität demonstrieren.
Yunnosch
4
Verwenden eines einzelnen PowerShell-Befehls zum Abrufen der Dateiende:
Es funktioniert, ist aber zu langsam, da der Start von PowerShell 2 oder 3 Sekunden dauern kann.
Anic17 vor
2
Zu diesem Zweck können Sie die erweiterte Befehlszeilen-Shell von Microsoft mit dem Namen " Windows PowerShell " verwenden. Es sollte Standard in den neuesten Windows-Versionen sein, aber Sie können es von Microsoft herunterladen, wenn Sie es noch nicht installiert haben.
Um die letzten fünf Zeilen in der Textdatei zu erhalten, lesen Sie einfach die Datei mit Get-Contentund Select-Objectwählen Sie dann die letzten fünf Elemente / Zeilen für Sie aus:
Die Antwort von @Eyal ist passender, wenn sie vom cmd aufgerufen wird, und der Code verwendet Tail besser als das Piping in Select-Object. Sie können nicht warten, während Sie auch Objekt auswählen ausführen. Dies ist nicht das, was das OP anfordert.
Elie Saad
1
Unter Windows ist keine integrierte Option verfügbar. Um Protokolle ständig zu überwachen, können Sie diese kostenlose Anwendung BareTailPro verwenden .
Dies repliziert nicht die Funktionalität von Tail.
Preet Sangha
1
Sie können dies mit einigen Methoden tun:
Eins ist der typeBefehl: type filename
Ein anderes ist der moreBefehl: more filename
Mit können moreSie das auch tun:type filename | more
Die letzte Option ist die Verwendung von forfor /f "usebackq delims=" %%A in (filename) do (echo.%%A)
Dies wird für jede Zeile verwendet und deren Inhalt angezeigt. Dies entspricht dem typeBefehl, ist jedoch eine andere Methode zum Lesen des Inhalts.
Wenn Sie fragen, was Sie verwenden sollen, verwenden Sie den moreBefehl, da er eine Pause macht.
Wenn Sie beispielsweise alle .config- (oder .ini-) Dateinamen und Dateiinhalte als Benutzerreferenz in einem Dokument anzeigen möchten (und damit meine ich, dass der Benutzer den Shell-Befehl nicht kennt, dh 95% von ihnen), können Sie Folgendes versuchen:
FORFILES / M * myFile.ini / C "cmd / c echo Dateiname: @file >>% temp% \ stdout.txt && Typ @path >>% temp% \ stdout.txt && echo. >>% temp% \ stdout.txt "| Geben Sie% temp% \ stdout.txt ein
Erläuterung: - ForFiles: Schleife in einem Verzeichnis (und untergeordnetem Element usw.), wobei jede Datei die Kriterien erfüllt. - Kann den aktuellen Dateinamen zurückgeben, der gerade verarbeitet wird (@file). - Kann die vollständige Pfaddatei zurückgeben, die gerade verarbeitet wird (@path). - Typ: Geben Sie den Dateiinhalt aus
Ps: Der letzte Pipe-Befehl zeigt auf die% temp% -Datei und gibt den Gesamtinhalt aus. Wenn Sie eine Dokumentation kopieren / einfügen möchten, öffnen Sie einfach die Datei stdout.txt im Textpad.
Antworten:
Sie können den
more
Befehl verwenden. Beispielsweise:Schauen Sie sich die GNU-Dienstprogramme für Win32 an oder laden Sie sie herunter :
quelle
Wir können den Befehl 'type' verwenden, um den Dateiinhalt in cmd anzuzeigen.
Beispiel -
Weitere Informationen finden Sie HIER .
quelle
more
zeigt N Bildschirme gleichzeitig, durch die Sie klicken müssenIch glaube nicht, dass es dafür eine eingebaute Funktion gibt
Dadurch werden die Dateien im Standardtexteditor in Windows geöffnet ...
Dies zeigt die Datei im aktuellen Fenster an. Vielleicht hat dies Parameter, die Sie verwenden können ...
Hier gibt es eine ähnliche Frage: CMD.EXE-Batch-Skript zum Anzeigen der letzten 10 Zeilen aus einer txt-Datei Es gibt also einen "more" -Befehl zum Anzeigen einer Datei aus der angegebenen Zeile, oder Sie können die von bryanph vorgeschlagenen GNU-Dienstprogramme für Win32 verwenden in seinem Link.
quelle
Mit dem Befehl 'more' können Sie den Inhalt der Datei anzeigen:
quelle
Verwenden eines einzelnen PowerShell-Befehls zum Abrufen der Dateiende:
Dies gilt für PowerShell 3.0 und höher.
Eine andere Möglichkeit besteht darin, eine Datei namens TAIL.CMD mit diesem Code zu erstellen:
quelle
Zu diesem Zweck können Sie die erweiterte Befehlszeilen-Shell von Microsoft mit dem Namen " Windows PowerShell " verwenden. Es sollte Standard in den neuesten Windows-Versionen sein, aber Sie können es von Microsoft herunterladen, wenn Sie es noch nicht installiert haben.
Um die letzten fünf Zeilen in der Textdatei zu erhalten, lesen Sie einfach die Datei mit
Get-Content
undSelect-Object
wählen Sie dann die letzten fünf Elemente / Zeilen für Sie aus:Quelle: Verwenden des Get-Content-Cmdlets
quelle
Unter Windows ist keine integrierte Option verfügbar. Um Protokolle ständig zu überwachen, können Sie diese kostenlose Anwendung BareTailPro verwenden .
quelle
Sie können das Dienstprogramm TAIL über die Windows Server 2003 Resource Kit-Tools herunterladen .
Hier sind zusätzliche Details - Befehl Tail für Windows (CMD) .
quelle
Wenn Sie möchten, dass der Inhalt der Datei live angezeigt und aktualisiert wird, wenn die Datei geändert wird, verwenden Sie einfach dieses Skript:
Das wird sich für immer wiederholen, bis Sie das cmd-Fenster schließen.
quelle
Sie können dies mit einigen Methoden tun:
Eins ist der
type
Befehl:type filename
Ein anderes ist dermore
Befehl:more filename
Mit könnenmore
Sie das auch tun:type filename | more
Die letzte Option ist die Verwendung von
for
for /f "usebackq delims=" %%A in (filename) do (echo.%%A)
Dies wird für jede Zeile verwendet und deren Inhalt angezeigt. Dies entspricht demtype
Befehl, ist jedoch eine andere Methode zum Lesen des Inhalts.Wenn Sie fragen, was Sie verwenden sollen, verwenden Sie den
more
Befehl, da er eine Pause macht.quelle
Wenn Sie beispielsweise alle .config- (oder .ini-) Dateinamen und Dateiinhalte als Benutzerreferenz in einem Dokument anzeigen möchten (und damit meine ich, dass der Benutzer den Shell-Befehl nicht kennt, dh 95% von ihnen), können Sie Folgendes versuchen:
FORFILES / M * myFile.ini / C "cmd / c echo Dateiname: @file >>% temp% \ stdout.txt && Typ @path >>% temp% \ stdout.txt && echo. >>% temp% \ stdout.txt "| Geben Sie% temp% \ stdout.txt ein
Erläuterung: - ForFiles: Schleife in einem Verzeichnis (und untergeordnetem Element usw.), wobei jede Datei die Kriterien erfüllt. - Kann den aktuellen Dateinamen zurückgeben, der gerade verarbeitet wird (@file). - Kann die vollständige Pfaddatei zurückgeben, die gerade verarbeitet wird (@path). - Typ: Geben Sie den Dateiinhalt aus
Ps: Der letzte Pipe-Befehl zeigt auf die% temp% -Datei und gibt den Gesamtinhalt aus. Wenn Sie eine Dokumentation kopieren / einfügen möchten, öffnen Sie einfach die Datei stdout.txt im Textpad.
Schönen Tag.
quelle
Ich gehe davon aus, dass dies irgendwann zu Windows cmd.exe hinzugefügt wurde.
quelle
tail
ist immer noch kein Standard-Windows-Befehl. Normalerweise ist es Teil eines Addons wie Cygwin, GNU oder anderer.