web-dev-qa-db-de.com

CMD: Exportieren Sie den gesamten Bildschirminhalt in eine Textdatei

Eingabeaufforderung - Wie exportiere ich den gesamten Bildschirminhalt in eine Textdatei (im Wesentlichen ein Kopierbefehl, nicht einfach durch Rechtsklick und Zwischenablage)

Dieser Befehl funktioniert, aber nur für die von Ihnen ausgeführten Befehle, nicht für die eigentliche Ausgabe sowie

doskey /HISTORY > history.txt
29
DextrousDave

Wenn Sie eine Datei anhängen möchten, anstatt ständig eine neue zu erstellen/den Inhalt der alten zu löschen, verwenden Sie die doppelte Markierung >. Eine einzelne Markierung > Überschreibt den gesamten Inhalt der Datei.

Datei überschreiben

MyCommand.exe>file.txt

^ Dadurch wird die Datei file.txt geöffnet, falls sie bereits vorhanden ist, und die Daten werden überschrieben, oder es wird eine neue Datei erstellt und mit Ihrer Ausgabe gefüllt

Hängt eine Datei von ihrem Endpunkt an

MyCommand.exe>>file.txt

^ Damit wird file.txt an das aktuelle Ende der Datei angehängt, sofern es bereits vorhanden ist, oder eine neue Datei erstellt und mit Ihrer Ausgabe gefüllt.


Update Nr. 1 (fortgeschritten):

Mein Batch-Fu hat sich im Laufe der Zeit verbessert, daher hier einige kleinere Updates.

Wenn Sie für ein Programm, das Standard-Streams , STDOUT/STDERR korrekt verwendet, zwischen Fehlerausgabe und normaler Ausgabe unterscheiden möchten, können Sie dies mit geringfügigen Änderungen an der Syntax. Ich werde für diese Beispiele nur > Zum Überschreiben verwenden, aber sie funktionieren einwandfrei mit >> Zum Anhängen in Bezug auf die Umleitung der Dateipiping-Ausgabe.

Das 1 Vor dem >> Oder > Ist das Flag für STDOUT. Wenn Sie tatsächlich die Nummer eins oder zwei vor den Umlenksymbolen ausgeben müssen, kann dies zu seltsamen, nicht intuitiven Fehlern führen, wenn Sie diesen Mechanismus nicht kennen. Dies ist besonders relevant, wenn Sie eine einzelne Ergebnisnummer in eine Datei ausgeben. 2 Vor den Umlenksymbolen steht für STDERR.

Jetzt, da Sie wissen, dass Sie mehr als einen Stream zur Verfügung haben, ist dies ein guter Zeitpunkt, um die Vorteile der Ausgabe an nul zu demonstrieren. Die Ausgabe in nul funktioniert nun konzeptionell genauso wie die Ausgabe in eine Datei. Sie sehen den Inhalt nicht in Ihrer Konsole. Anstatt zu archivieren oder Ihre Konsolenausgabe, geht es ins Leere.

[~ # ~] stderr [~ # ~] ablegen und unterdrücken STDOUT

MyCommand.exe 1>nul 2>errors.txt

[~ # ~] stderr [~ # ~] um nur Fehler zu protokollieren. Hält STDOUT in der Konsole

MyCommand.exe 2>errors.txt

[~ # ~] stdout [~ # ~] to file and suppress STDERR

MyCommand.exe 1>file.txt 2>nul

[~ # ~] stdout [~ # ~] only to file. Hält STDERR in der Konsole

MyCommand.exe 1>file.txt

[~ # ~] stdout [~ # ~] to one file and [~ # ~] stderr [~ # ~] to another file

MyCommand.exe 1>stdout.txt 2>errors.txt

Die einzige Einschränkung, die ich hier habe, ist, dass eine 0-Byte-Datei für einen nicht verwendeten Stream erstellt werden kann, wenn einer der Streams nie verwendet wird. Wenn keine Fehler aufgetreten sind, erhalten Sie möglicherweise eine 0-Byte-Datei 'errors.txt'.

Update Nr. 2

Beim Schreiben von Konsolen-Apps, die direkt an STDERR geschrieben haben, bemerkte ich merkwürdiges Verhalten. Wenn ich wollte, dass meine Fehlerausgabe bei Verwendung von Basic Piping in dieselbe Datei verschoben wird, musste ich entweder Streams kombinieren 1 und 2 oder verwenden Sie einfach STDOUT. Das Problem mit diesem Problem ist, dass ich nicht wusste, wie man Streams richtig kombiniert. Das ist this :

%command% > outputfile 2>&1

Daher, wenn Sie alle [~ # ~] stdout [~ # ~] und [~ # ~] stderr [~ # ~] in den gleichen Stream gepippt, verwenden Sie das wie folgt:

MyCommand.exe > file.txt 2>&1

Der Redirector verwendet standardmäßig 1> Oder 1>>, Auch wenn Sie nicht explizit 1 Davor verwenden, wenn Sie keine Zahl davor verwenden. und der 2>&1 kombiniert die Streams.

Kopieren der Befehlsausgabe einer CMD- oder Powershell-Sitzung

Wenn Sie nur die Befehlsausgabe einer gerade beendeten CMD- oder Powershell-Sitzung oder einer anderen Shell benötigen, können Sie diese Konsole in der Regel einfach aus dieser Sitzung auswählen. CTRL + A um den gesamten Inhalt auszuwählen, dann CTRL + C um den Inhalt zu kopieren. Anschließend können Sie mit den kopierten Inhalten in der Zwischenablage nach Belieben arbeiten.

21

Sehen Sie einfach diese Seite

in cmd typ:

Command | clip

Öffnen Sie dann eine *.Txt-Datei und Paste. Das ist es. Erledigt.

18

Wenn Sie jeden Befehl separat suchen  

So exportieren Sie die gesamte Ausgabe des Befehls Eingabeaufforderung in Textdateien. Folgen Sie einfach der folgenden Syntax.

C:> [syntax] >file.txt

Der obige Befehl erstellt ein Ergebnis der Syntax in file.txt. Wo wird die neue Datei.txt für den aktuellen Ordner erstellt, in dem Sie sich befinden.

Zum Beispiel,

C:Result> dir >file.txt

Um die gesamte Sitzung zu kopieren, probiere es aus:

Copy & Paste a command session as follows:

1.) At the end of your session, click the upper left corner to display the menu.
Then select.. Edit -> Select all

2.) Again, click the upper left corner to display the menu.
Then select.. Edit -> Copy

3.) Open your favorite text editor and use Ctrl+V or your normal
Paste operation to paste in the text.
10
Jayram Singh

Wenn Ihre Batch-Datei nicht interaktiv ist und Sie nicht sehen müssen, dass sie ausgeführt wird, sollte dies funktionieren.

@echo off
call file.bat >textfile.txt 2>&1

Verwenden Sie andernfalls einen tee-Filter. Es gibt viele, manche nicht NT-kompatibel. SFK, das Schweizer Taschenmesser, hat ein T-Stück und wird noch weiterentwickelt. Vielleicht klappt das für Sie.

3
foxidrive

Wie wäre es damit:

<command> > <filename.txt> & <filename.txt>

Beispiel:

ipconfig /all > network.txt & network.txt

Dadurch werden die Ergebnisse im Editor anstelle des Befehls Aufforderung angezeigt.

1
Hausum

Von der Eingabeaufforderung Als Administrator ausführen. Im folgenden Beispiel wird eine Liste der Dienste gedruckt, die auf Ihrem PC ausgeführt werden. Führen Sie den folgenden Befehl aus:

net start > c:\netstart.txt

Sie sollten eine Kopie der gerade exportierten Textdatei sehen, in der alle PC-Dienste aufgelistet sind, die im Stammverzeichnis Ihres C:\-Laufwerks ausgeführt werden.

0
mrhansoL0

Wenn SieALLAusführlichkeit ausgeben möchten, nicht nur stdout. Aber auch alle vom Programm abgegebenen printf -Anweisungen, Warnungen, Infos usw. müssen Sie am Ende der Befehlszeile 2>&1 hinzufügen.

In Ihrem Fall lautet der Befehl 

Program.exe > file.txt 2>&1

0
Mich