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

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

久しぶりのコマンドプロンプト講座です。

PowerShell の記事も書いたりしていたので、あまり更新していませんでしたが、前回は複数のプログラムを一度に起動する方法を紹介しました。

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

2019.01.28

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

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

と思わずに是非作ってみましょう。

自分でつくると楽しいもんです。



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

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

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

最後に

いかがでしょうか。

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

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

本人が満足していれば、それで良いのです(笑)