web-dev-qa-db-ja.com

CMD:すべての画面コンテンツをテキストファイルにエクスポートします

コマンドプロンプト-画面のすべてのコンテンツをテキストファイルにエクスポートするにはどうすればよいですか(基本的には、右クリックやクリップボードを使用するのではなく、コピーコマンドです)

このコマンドは機能しますが、実際の出力ではなく、実行したコマンドに対してのみas

doskey /HISTORY > history.txt
29
DextrousDave

常に新しいファイルを作成する/古いコンテンツを削除するのではなく、ファイルを追加する場合は、>マークを二重に使用します。単一の>マークは、すべてのファイルのコンテンツを上書きします。

上書きファイル

MyCommand.exe>file.txt

^これは、file.txtが既に存在する場合にそれを開き、データを上書きするか、新しいファイルを作成して出力で埋めます。

エンドポイントからの追加ファイル

MyCommand.exe>>file.txt

^これにより、file.txtが現在のファイルの末尾にすでに存在する場合は追加されます。または、新しいファイルを作成して出力で埋めます。


アップデート#1(高度):

私のbatch-fuは時間の経過とともに改善されているため、ここにいくつかのマイナーアップデートがあります。

標準ストリームSTDOUT/STDERRを正しく使用するプログラムのエラー出力と通常出力を区別したい場合、構文を少し変更することでこれを行うことができます。これらの例の上書きには>を使用しますが、ファイルパイピング出力のリダイレクトに関しては、>>を追加に使用すると問題なく動作します。

1または>>の前の>は、STDOUTのフラグです。リダイレクトシンボルの前に1または2の数字を実際に出力する必要がある場合、このメカニズムを知らないと、奇妙で​​直感的でないエラーが発生する可能性があります。これは、単一の結果番号をファイルに出力するときに特に関連します。 2リダイレクト記号の前はSTDERR用です。

複数のストリームが利用可能であることがわかったので、nulに出力することの利点を示す良い機会です。現在、nulへの出力は、概念的にファイルへの出力と同じように機能します。コンソールにコンテンツが表示されません。ファイルまたはコンソール出力に行く代わりに、それは無効になります。

STDERRto fileおよびsuppressSTDOUT

MyCommand.exe 1>nul 2>errors.txt

STDERRエラーをログに記録するだけです。コンソールにSTDOUTを保持します

MyCommand.exe 2>errors.txt

STDOUTto fileおよびsuppressSTDERR

MyCommand.exe 1>file.txt 2>nul

STDOUTonlyto file。コンソールにSTDERRを保持します

MyCommand.exe 1>file.txt

STDOUT1つのファイルにandSTDERRanotherファイル

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

ここで唯一の注意点は、ストリームの1つが使用されない場合、未使用のストリームに対して0バイトのファイルを作成できることです。基本的に、エラーが発生しなかった場合、0バイトのerrors.txtファイルで終わる可能性があります。

アップデート#2

STDERRに直接書き込むコンソールアプリを作成するときに奇妙な動作に気付き始め、基本的なパイピングを使用しているときにエラー出力を同じファイルに送りたい場合、ストリーム1および2または単にSTDOUTを使用します。その問題の問題は、ストリームを結合する正しい方法がわからなかったことです。これは this です。

%command% > outputfile 2>&1

したがって、すべてSTDOUTandが必要な場合STDERRは同じストリームにパイプされます。必ず次のように使用してください。

MyCommand.exe > file.txt 2>&1

リダイレクタは、実際にはデフォルトで1>または1>>になります。たとえその前に1を明示的に使用していなくても、その前に数字を使用しなければ2>&1はストリームを結合します。

CMDまたはPowershellセッションのコマンド出力のコピー

必要なのが、完了したCMDまたはPowershellセッションからのコマンド出力、またはその問題の他のシェルだけである場合、通常はそのセッションからそのコンソールを選択するだけで、 CTRL + A すべてのコンテンツを選択するには、 CTRL + C コンテンツをコピーします。その後、コピーされたコンテンツがクリップボードにある間に、好きなことを行うことができます。

21

this ページをご覧ください

cmdタイプ:

Command | clip

次に、*.TxtファイルとPasteを開きます。それでおしまい。できた.

18

各コマンドを個別に探している場合

コマンドプロンプトのすべての出力をテキストファイルにエクスポートするには。次の構文に従うだけです。

C:> [syntax] >file.txt

上記のコマンドは、file.txtに構文の結果を作成します。現在のフォルダーに新しいfile.txtが作成される場所。

例えば、

C:Result> dir >file.txt

セッション全体をコピーするには、これを試してください:

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

バッチファイルが対話型ではなく、実行する必要がない場合は、これが機能するはずです。

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

それ以外の場合は、teeフィルターを使用します。 NT互換ではないものが多数あります。 SFアーミーナイフにはティー機能があり、まだ開発中です。たぶんそれはあなたのために働くでしょう。

3
foxidrive

これはどう:

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

例:

ipconfig /all > network.txt & network.txt

これにより、コマンドプロンプトの代わりにメモ帳に結果が表示されます。

1
Hausum

コマンドプロンプトから管理者として実行。以下の例は、PCで実行されているサービスのリストを印刷して、次のコマンドを実行することです。

net start > c:\netstart.txt

エクスポートしたテキストファイルのコピーが、C:\ドライブのルートで実行されているすべてのPCサービスのリストとともに表示されます。

0
mrhansoL0

stdoutだけでなく、ALL冗長性を出力する場合。ただし、プログラムによって作成されたprintfステートメント、警告、情報なども、コマンドの最後に2>&1を追加する必要があります。ライン。

あなたの場合、コマンドは

Program.exe > file.txt 2>&1

0
Mich