てなわけで、本日はwindowsバッチファイルでシャットダウンボタンを作ってみました。
実行するだけでパソコンをシャットダウンしてくれる便利なプログラムですね。
そうです。なんとコードはたったの四行。コチラ。
@echo off
echo 何らかのキーを押すとシャットダウンします
pause>nul
shutdown -s -t 0
それでは解説いってみよう。詳しくは続きを読むで。
では、この四行のプログラムについて解説をしてゆく。みな心して聞くように。
はーい。
1行目
@echo off
これは大体のバッチファイルの先頭についている呪文である。
呪文ですか。意味は?
コマンドプロンプト上に、コマンド文を表示させないようにしている。
コマンド文が表示されると何か問題があるんですか?
コマンド文と実行結果の両方が表示されることになるので、画面がごちゃごちゃして見づらくなる。なのでこの呪文は唱えておいた方が無難。
なるほど。確かにごちゃごちゃは嫌ですからね。唱えた方が無難です。
2行目
echo 何らかのキーを押すとシャットダウンします
これはコマンドプロンプト上に、「何らかのキーを押すとシャットダウンします」と表示する命令文。
表示するだけ?
そう、このコマンドは文字を表示するだけ。次の文でキー入力待ちをする。
3行目
pause>nul
「pause」がキー入力待ちコマンド。何らかのキーが押されるまでここで処理がストップするぞよ。
へー。じゃあ、「pause」の後ろについてる「>nul」は何です?
これな。出力を無しにするという意味である。
というと?
pauseコマンドを使うと、必ずコマンドプロンプト上に「続行するには何かキーを押してください・・・」と表示されてしまう。
しかし「>nul」を付けることで、この表示を消すことが出来るのだー!
ほう……。
え? 「続行するには何らかのキーを押してください」って表示消す意味あります? あった方が解りやすくね?
まあ消さなくてもプログラム的には問題ない。しかし今回は、二行目で既に「何らかのキーを押すとシャットダウンします」と表示しているし、繰り返しになるから消しておいた。
あーそっか、二行目の「echo」で既に文章表示してますもんね。繰り返しになると画面がごちゃごちゃして解りづらいと。
うむ。ユーザーにとって解りやすい文章でキー入力待ちをしたい時は、echoコマンドで自由に文章を表示させてから、そして「pause>nul」を使うのだ。
テクいっすね。
じゃろう?
4行目
shutdown -s -t 0
でこれが肝心のシャットダウンコマンド。
へー、shutdown はそのままなんで解るんですけど、後ろの「-s」や「-t」はどういう意味なんです?
まあまあまあ。その辺はググればいっぱい解説記事が出てくるから、そっちを参照してくれえい。
急に投げやりになったなおい。
今回はここまでじゃ。また適当なバッチファイルを作ったら報告してくぞ。
ういーす。