本記事では、バッチファイルやコマンドプロンプトのウィンドウで、現在表示されている文字を消去するclsコマンドを紹介します。
バッチファイルでコンソールに大量の文字が出ていて見づらい場合に、それを消去する用途に使える他、例えばコンソールに表示している時刻表示を1秒ごとに消去して再表示して更新するなど、使用することでバッチファイルで実現できることに幅が広がると思います。
早速clsコマンドの使い方について紹介します。
処理はなんでもよいので、まずはclsコマンドを使ってみて動作を確認してみます。
@echo off
for /l %%i in (1,1,10) do (
echo %%i
)
pause
cls
pause
上記のコマンドを実行すると、まず最初のpauseコマンド(何かキー入力がされるまで処理を停止するコマンド)までの処理が実行され、For文で1~10までの数字がWindowに表示されます。
その後、何かキー入力をすると停止が解けてclsコマンドが実行され、全ての数字が消去されます。
clsコマンドを用いることで、そのときウインドウに表示されている全ての文字をクリアすることができます。
応用例としては、例えば以下のようにtimeoutコマンド(一定秒数停止するコマンド)と組み合わせることで、バッチファイルを起動してから経過した秒数をリアルタイムでウインドウに表示させることができます。
@echo off
for /l %%i in (1,1,1000) do (
timeout /t 1 /nobreak > nul
cls
echo %%i
)
pause
このコマンドではfor文で処理が1000回繰り返される中で、「timeout /t 1 /nobreak > nul」(1秒待機)をした後、コンソールの表示をclsで消去して、最後にfor文が何ループ目であるかを「echo %%i」で表示します。
結果的に1秒ごとに表示をクリアしてechoするという処理を繰り返すため、1秒ごとに数字が1ずつ増えてコンソールに表示されます。
段々数字が増えていき、起動した時点からの秒数が分かります。
これを応用することで、ストップウォッチやタイマーのような機能をバッチファイルで実現することもできそうですね。