【コマンドプロンプト講座】バッチファイルでタイマーを作る

バッチファイルでタイマーを作る

※この記事は「2021年3月25日」に更新しました。

コマンドプロンプト講座です。

前回は、複数のプログラムを一度に起動する方法を紹介しました。

複数のプログラムを一度に起動する

【コマンドプロンプト講座】複数のプログラムを一度に起動する

2019年1月28日

今回は、バッチファイルでタイマーを作っていきます。

「タイマーなんてアプリがあるじゃん」

このように思わずに是非作ってみましょう。

自分でつくると愛着が沸くものです。

ぱそた
SE、Web制作、販売を経験した管理人が解説します。



バッチファイルでタイマーを作るには

バッチファイルでタイマーを作るには、一定時間指定して処理を待つようなコマンドが必要になります。

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コマンドの処理ごとに画面がクリアされるので、カウントダウンしているように見えるわけです。

最後に

いかがでしょうか。

今回は、バッチファイルでタイマーを作る方法について、解説しました。

なんとなく作ってみたのですが、昔、プリントに書いてある文章をタイピングする練習をしていたときに、同じようなバッチファイルを使っていました。

別にバッチファイルを使わなくても良いのですが、簡単なものでも自分で作成したものというのは愛着が沸くものです。