2016-03-21 19 views
0

私はバッチスクリプトを書いています(私は非常にまれです)。バッチスクリプトのメッセージを抑制する方法は?

私は明示的にechoをしていないものを抑制したいと思います。これまでのすべてのための

>nul 2>&1

を使用してstderrstdoutからのメッセージを抑制するために動作します。

しかし、私はtypeに同じ原理を適用しようとすると、コマンドが実行されない...

type header.tmp geo.tmp > geo.txt

は私が抑制したいコマンドです。

+0

あなたも 'のようなnul''へのコードのブロック全体をリダイレクトすることができ> NUL 2> &1(...) 'とし、そのブロック内のすべての出力を'> con'に明示的にリダイレクトします。 – aschipfl

答えて

3

私はあなたがファイル名を表示しないようにしようとしていると思います。エラー出力に複数のファイルを受信したときのタイプは、ファイル名を送信してあなたは、

type header.tmp geo.tmp > geo.txt 2>nul 

を使用してこれを行うことができます2>

+0

これはまさに私が探していたものです。私はおそらく、これらのことが実際には、私が上に移動する前に抑制することを学ぶべきだと思うが、あなたの答えは大変ありがとう。 –

+0

@AndersHokinsonリダイレクト/ supressingコマンドの詳細については、[this](http://ss64.com/nt/syntax-redirection.html)を参照してください。 –

0

私は正常に抑えるには...

@echo on 

の実行中で最後に背中にそれを回す...

@echo off 

とバッチスクリプトの最初からエコースクリプトを実行すると、私はその実行に関してエコーしたいものだけをエコーし​​ます。これにより、すべてをNULに送る必要がなくなります。ただし、typeコマンドの場合など、特定のコマンドのstd出力またはerr出力をnulにリダイレクトする必要があります。

+0

エコーのオン/オフは、実際の表示/非表示ではなく、実行されるコマンドの表示/非表示に使用されますこれらのコマンドの出力については、[Command Redirection](http://ss64.com/nt/syntax-redirection.html)を参照してください。 –

+0

はい。まったく。彼は、他のすべてのものを見るのではなく、見たいコマンドの出力を指示するだけです。例えば、err型の出力をnulに送るなど。私はこれをより明確にするために私の答えを更新しました。 – ManoDestra

+2

@echo off **出力をリダイレクトしません。**コマンド自体がcmdでは表示されないようにしますが、**では出力できません。例えば、 'echo hello'はcmdでは' hello'と表示されますが、 'C:> echo hello'では表示されません。しかし、 'echo hello> nul'は出力に' hello'を表示しません。 –

関連する問題