久しぶりのコマンドプロンプト講座です。
PowerShell の記事も書いたりしていたので、あまり更新していませんでしたが、前回は複数のプログラムを一度に起動する方法を紹介しました。
今回はバッチファイルでタイマーを作っていきます。
「タイマーなんてアプリがあるじゃん」
と思わずに是非作ってみましょう。
自分でつくると楽しいもんです。
バッチファイルでタイマーを作るには
バッチファイルでタイマーを作るには、一定時間指定して処理を待つようなコマンドが必要になります。
timeoutコマンド
timeoutコマンドを使えば、一定時間処理を待つことができます。
@echo off echo タイマー機能 echo; echo 時間は10秒に設定してあります。 echo; pause echo; echo タイマー起動中... timeout /t 10 echo; echo 時間です! echo; pause
/tオプションを使えば、待機時間を指定することができます。
音を鳴らしたい
タイマーなので、音を鳴らしたいものです。
IME が有効の状態で 0007 と入力し、F5キーを押すと、音を鳴らすためのコードが変換候補に表示されます。
それを echo に渡せば、オッケーです。
@echo off echo echo 音は鳴りましたか? echo; pause
カウントダウンの表示を自分で変更したい
カウントダウンの表示を自分で変更することもできます。
@echo off echo タイマー機能 echo; echo 時間は10秒に設定してあります。 echo; pause echo; echo タイマー起動中... echo; for /l %%a in (10,-1,1) do ( echo あと %%a 秒ですよ。 timeout /t 1 > nul ) echo; echo 終了ですよ! echo; pause
ちなみに実行するとこんな感じで表示されます。

画面をクリアにしたい
先程のコードだと画面にテキストが順番に表示されていきます。
pause を解除するときに一度画面をクリアにして、カウントダウンごとに画面をクリアにするようなものにしてみます。
ついでに音も鳴るようにしておきます。
@echo off echo タイマー機能 echo; echo 時間は10秒に設定してあります。 echo; pause cls for /l %%a in (10,-1,1) do ( echo; echo あと %%a 秒ですよ。 timeout /t 1 > nul cls ) echo echo 終了ですよ! echo; pause
forコマンドの処理ごとに画面がクリアされるので、カウントダウンしているように見えるわけです。
最後に
いかがでしょうか。
なんとなく作ってみたのですが、昔、プリントに書いてある文章をタイピングする練習をしていたときに、同じようなバッチファイルを使っていました。
まあ別にバッチファイルを使わなくても良いのですが、簡単なものでも自分で作成したものというのは愛着が沸くものです。
本人が満足していれば、それで良いのです(笑)