ECHO の不思議
まず簡単なバッチファイルを作る。
ECHO foo ECHO bar
それを実行すると、
DOS> foo.bat DOS> ECHO foo foo DOS> ECHO bar bar DOS> _
いちいち実行するコマンドを表示してくれる。
プロンプトまで表示してくれる。
コマンドを非表示にするには @ を使う。
@ECHO foo @ECHO bar
それを実行すると、
DOS> foo.bat foo bar DOS> _
でも、全ての行に @ を付けるなんて、やってられない。
そういう時は ECHO OFF する。
@ECHO OFF ECHO foo ECHO bar
それを実行すると、
DOS> foo.bat foo bar DOS> _
foo と bar の間に空行を入れてみる。
@ECHO OFF ECHO foo ECHO ECHO bar
それを実行すると、
DOS> foo.bat foo ECHO はです。 bar DOS> _
ECHO に文字列を渡さないと、現在の状態 (ON または OFF) を教えてくれる。
空行を表示するには ECHO. を使う。
@ECHO OFF ECHO foo ECHO. ECHO bar
それを実行すると、
DOS> foo.bat foo bar DOS> _
ON または OFF という文字列を表示したいときも ECHO. を使う。
@ECHO OFF ECHO.ON ECHO.OFF
それを実行すると、
DOS> foo.bat ON OFF DOS> _
なんでこんな仕様になっているのか?
不思議だ。