Windowsコマンドラインからの出力をテキストファイルにリダイレクトする
Windowsで実行するコマンドまたはバッチジョブの動作をログに記録してトラブルシューティングする最も便利な方法の1つは、出力をファイルにリダイレクトすることです。
ただし、コマンドライン書き込みをファイルにリダイレクトする方法はいくつかあります。選択するオプションは、コマンド出力をどのように表示するかによって異なります。
Windowsコマンドプロンプト出力のしくみ
Windowsコンソール(コマンドプロンプト)でコマンドを入力すると、そのコマンドからの出力は2つの別々のストリームに送られます。
- STDOUT :標準出力は、コマンドからの標準応答が送信される場所です。たとえば、DIRコマンドの標準的な応答は、ディレクトリ内のファイルのリストです。
- STDERR :標準エラーは、コマンドに問題がある場合にエラーメッセージが表示される場所です。たとえば、ディレクトリにファイルがない場合、DIRコマンドは「FileNotFound」を標準エラーストリームに出力します。
これらの出力ストリームの両方について、出力をWindowsのファイルにリダイレクトできます。
標準出力の書き込みを新しいファイルにリダイレクトする
コマンドの標準出力をファイルにリダイレクトする方法は2つあります。 1つは、コマンドを実行するたびに、コマンド出力の書き込みを新しいファイルに送信することです。
これを行うには、コマンドプロンプトを開き、次のように入力します。
dir test.exe > myoutput.txt
>文字は、コンソールに STDOUTを出力するように指示します 指定した名前のファイルに追加します。
このコマンドを実行すると、ファイルが存在しないというエラーを除いて、コマンドウィンドウに応答がないことがわかります。
これは、コマンドの標準出力がmyoutput.txtというファイルにリダイレクトされたためです。これで、ファイルはコマンドを実行したのと同じディレクトリに存在します。標準エラー出力は通常どおり表示されます。
注 :コマンドを実行する前に、コマンドプロンプトのActiveDirectoryを変更するように注意してください。このようにして、出力ファイルが保存されている場所を知ることができます。
コマンドウィンドウに「myoutput.txt」と入力すると、ファイルに送信された標準出力を表示できます。これにより、デフォルトのテキストファイルビューアでテキストファイルが開きます。ほとんどの人にとって、これは通常Notepad.exeです。
次に同じコマンドを実行すると、前の出力ファイルが削除されます。新しい出力ファイルは、最新のコマンドの出力で再作成されます。
同じファイルへの標準出力書き込みのリダイレクト
同じファイルを上書きしたくない場合はどうなりますか?もう1つのオプションは、>ではなく>>を使用して出力ファイルにリダイレクトすることです。この例の場合、次のように入力します。
dir test.exe >> myoutput.txt
同じ出力が表示されます(エラーのみ)。
ただし、この場合、このコマンドは、出力ファイルを上書きする代わりに、新しい出力を既存の出力ファイルに追加します。
コマンドを実行して出力をファイルに追加するたびに、新しい標準出力が既存のファイルの最後に書き込まれます。
標準エラーをファイルにリダイレクトする
標準出力の書き込みをファイルにリダイレクトできるのと同じ方法で、標準エラーストリームをファイルに出力することもできます。
これを行うには、 2>を追加する必要があります コマンドの最後に、作成する出力エラーファイルが続きます。
この例では、次のコマンドを入力します:
dir test.exe > myoutput.txt 2> output.err
これにより、標準出力ストリームがmyoutput.txtに送信され、標準エラーストリームがoutput.errに送信されます。その結果、コンソールウィンドウに出力ストリームがまったく表示されなくなります。
ただし、 output.err と入力すると、エラーメッセージが表示されます。 。これにより、デフォルトのテキストファイルビューアでファイルが開きます。
ご覧のとおり、コマンドからのエラーメッセージはすべてエラーファイルに出力されます。標準出力と同様に、>>を使用できます 代わりに、以前に実行したコマンドのエラーにエラーを追加します。
すべての出力書き込みを同じファイルにリダイレクトする
上記のすべてのアプローチでは、複数のファイルが作成されます。 1つのファイルは標準出力ストリーム用で、もう1つは標準エラーストリーム用です。
これらの出力の両方を同じファイルに含めたい場合は、それも行うことができます。これを行うには、次のコマンドを使用して、すべての出力を同じファイルにリダイレクトする必要があります。
dir test.exe 1> myoutput.txt 2>&1
このコマンドの仕組みは次のとおりです。
- 標準出力は、出力番号1で識別される出力ファイルに送信されます。
- 番号2で識別される標準エラー出力は、番号1で識別される出力ファイルにリダイレクトされます。
これにより、エラー出力が標準出力の最後に追加されます。
これは、1つのファイル内の任意のコマンドのすべての出力を確認するための便利な方法です。
標準またはエラー出力ストリームのサイレンシング
出力をファイルではなくNULにリダイレクトすることで、標準出力または標準エラーのいずれかをオフにすることもできます。
上記の例を使用して、標準出力のみが必要で、標準エラーがまったく必要ない場合は、次のコマンドを使用できます。
dir test.exe 1> myoutput.txt 2>nul
これにより、標準出力のみをリダイレクトした上記の最初の例と同じ出力ファイルが作成されますが、このコマンドを使用すると、エラーはコンソール内にエコーされません。エラーログファイルも作成されません。
これは、エラーを気にせず、エラーが邪魔にならないようにする場合に便利です。
BATファイル内から上記と同じ出力コマンドのいずれかを実行でき、その行からの出力は指定した出力ファイルに送られます。これは、BATファイル内のコマンドを実行しようとしたときにエラーが発生したかどうかを確認するのに便利な方法です。
-
Windows10以降にコマンドラインに加えられた変更
Windows 10 では、多くの変更が加えられました しかし、いくつかの変更についてはあまり話されていません。それらの変更の1つは、コマンドラインに関係しています。 、そのため、それに焦点を当てます。 Windows10のコマンドラインの改善 現在、Microsoftがコマンドラインに対して行ったいくつかの新しい変更があります。 、そして私たちが言えることから、開発者やさまざまな理由でコマンドラインを使用することを好む一般の人々は、変更が非常に喜ばしいことに気づきました。 それでは、時間を無駄にすることなく、いくつかの新しいことについて話しましょう。 タールとカールのサポート
-
コマンドラインからUbuntuをアップグレードする方法
UbuntuのUpdateManagerを使用すると、インストールを新しいメジャーリリースに比較的簡単にアップグレードできます。ユーティリティのグラフィカルインターフェイスは、わかりやすい手順のウィザードをガイドします。 ただし、グラフィカルユーティリティを使用できない場合があります。たとえば、サーバーではグラフィカルインターフェイスにアクセスできません。この場合、Ubuntuをアップグレードするためにコマンドラインを使用する必要があります。 ただし、これが役立つシナリオはこれだけではありません。コマンドラインインターフェイスを使用すると、通常、何が起こっているかを詳しく知ることができます