処理結果の非表示とバッチ処理の一時停止


 バッチファイルの中でCOPYコマンドなどを実行すると、
「1個のファイルをコピーしました」
などというよけいなメッセージが出てきてしまいます。
プロンプトでCOPYコマンドを打ったときなどは正常にコピーしたことを確認できていいのですが、実際バッチファイルでこんなものが出てくるとちょっとじゃまです。
 こんな時には以下のようにします。

REM カレントディレクトリにある拡張子がTXTのファイルをフロッピーにコピーするバッチファイル @ECHO OFF COPY *.TXT A:\ >NUL
 ここでは、COPYコマンドの出力するメッセージを、NULというファイルにリダイレクトしています。
NULというのは、何もないファイルのことです。ですから、ファイル自体も存在しませんが、何もないファイルに処理結果をリダイレクトすることで、画面によけいな文字が表示されません。  「PAUSE」コマンドという、バッチファイルの処理を一時停止して、ユーザーからのキー入力があったら処理を継続するコマンドがあります。
このコマンドを記述すると、「続けるにはどれかキーを押してください」と表示されて処理が止まります。
しかし、このメッセージは気に入らないときもありますよね。そこでPAUSEコマンドの出力をNULにリダイレクトしてしまって、その行の前に自分の好きなメッセージを書いておけば、そのメッセージを表示してキー入力を待つことができます。

REM 処理確認してコピーする ECHO このディレクトリの中にあるTXTファイルをフロッピーにコピーします。
ECHO ディスクをドライブにセットしてからどれかキーを押してください。
PAUSE >NUL
COPY *.TXT A:\

次へ

バッチファイル講座の目次に戻る

MS-DOSの部屋に戻る

トップページに戻る