やりたいこと検索

コマンドプロンプトでカウントダウン機能を作る

 

目次

 

ここで作るカウントダウン機能

ここでは、コマンドプロンプト上で、以下のようなカウントダウン機能を作ります。

コマンドプロンプトでカウントダウン機能を作る ここで作るカウントダウン機能

何かキーを押すと、カウントダウンが始まり、10から1まで1秒ずつ数字が減少していきます。注目したいのは、コマンドプロンプトへの表示が下に続くのではなく、一行目だけでカウントダウンが行われている点です。

 

「timeout」コマンドで次の処理を待つ

「timeout」は次の処理に移るのを一定時間待つコマンドです。例えば、以下は「for文」を使って1秒おきにメッセージを10回表示するバッチファイルプログラムです。

以下、実行結果です。「1秒毎に表示されます」というメッセージが1秒毎に表示されていきます。

コマンドプロンプトでカウントダウン機能を作る 1秒おきにメッセージを10回表示

「/t」オプションは待機時間を指定するためのもので、ここでは1秒を指定しています。これを使ってカウントダウン機能が作れそうです。

もう一度、出力画面に注目すると、「echo」コマンドで出力している以外に「0 秒待っています。続行するには何かキーを押してください …」というメッセージがありますが、これは「timeout」コマンドによって自動的に出力されるものです。この出力を消すために以下のように「> nul」を追記します。

以下、実行結果です。

コマンドプロンプトでカウントダウン機能を作る 1秒おきにメッセージを10回表示(余分な表示を無くす)

このように、「timeout」コマンドによって表示されるメッセージ「0 秒待っています。続行するには何かキーを押してください …」を別の場所に出力し、コマンドプロンプト上では見えなくしています。

「> nul」は「timeout」コマンドだけでなく別のコマンドに対しても、余計な表示をさせたくないときに使用できます(「コマンドプロンプトに出力・表示させない -やりたいこと検索-」を参照)。

次に、「echo」コマンドの出力を数字に置き換えます。このとき、表示される数字は10から1ずつ減らしていき1に達したら終了とします。なので、ここではfor文の「%%a」を利用するのがスマートなやり方だと思われます。

「for」コマンドについては、「for(繰り返し処理) -コマンド別解説-」をご覧下さい。

ついでに、カウントダウンの開始と終了の出力も書き加えました。これを実行すると以下のようになります。

コマンドプロンプトでカウントダウン機能を作る カウントダウン

 

「cls」コマンドで前の表示を消す

続いて、コマンドプロンプトの表示を下に続けるのではなく、その場所でカウントダウンするように編集します。これは、「cls」コマンドを使ってforループのたびに表示を削除することで実現できます。

二箇所に「cls」を追記し、表示をリセットしています。参考は「cls(画面の表示をクリアする) -コマンド別解説-」です。

これで目的のカウントダウン機能が完成しました。

コマンドプロンプトでカウントダウン機能を作る ここで作るカウントダウン機能

 

Windowsバッチファイル初心者へ向けた入門書を作成しました


Windowsバッチファイル初心者の方へ向けた入門書(PDF)を作成しました。


・初めてWindowsバッチファイルを勉強してみようと思っている方

・使ったことはあるが一から基礎を学び直したい方


へ向けて丁寧な解説を行っています。


「全くプログラムを知らない方でも、この入門書を読んだ後には、Windowsバッチファイルの中級者レベルになれるように」をコンセプトに執筆したものです。


この本を読めば、バッチファイルを使ったファイルやフォルダの操作に関しては一通りのことができるようになります。そうなればもう十分中級者と呼べるレベルですので、あとは自分のやりたいことを実現しようとする中で徐々に知識を蓄えていくだけですぐに上級者へなれるでしょう。


詳しくみる

関連ページ

コメントを残す