batを覚える罪と罰

この記事は「初めて作る謎の一人アドベントカレンダー」6日目の記事です。

(今日は画像を使いたくない)

今日はbat(バッチファイル)という超古代兵器についての話を書きます。

バッチファイルとは、Windowsのコマンドプロンプトでいくつかの処理を一括で実施するよ!みたいなものです。

例えば

1.ファイルをコピー
2.リネーム
3.コピー元を消す

などを3回コマンドを実行するのでなくて1回コマンドを実行するだけで1~3の手順を一括で実行するよ!とかそんな感じのものです。

いちいち曖昧な物言いなのは殆ど調べないで自分の覚えていることだけで書いているので自信がないからです。

バッチファイルを使いだすきっかけ

ものすごい長い名前のexe、かつ「-h」だ「-s」だのをつけてコマンドプロンプトを起動して入力しなければいけない・・・

asdasdsadsadsadasdsadasdsa0 5 4ver20200101.exe aaa.txt -s -b -h

こんなのを毎回入力して、と言われたら絶対つらいですよね。

こんなときは適当に「a.bat」という名前の空のテキストファイルを作って開き、

上の長い文をそのテキストにコピーすれば「a.bat」をダブルクリックするだけ(それかコマンドプロンプト上で「a」または「a.bat」を入力するだけ)で、上の長い文が実行できるようになります。

長い名前をいちいちうつのが面倒→実行を楽にしたい

これが多分batを使う最初のきっかけになるような気がするのです。

あとは、調べて2,3個の処理を並べられるように覚えたり…

この記事はbatの使い方の話ではないので割愛します。

batを使うときに気を付けたい「batにフェイルセーフは無い」

ファイルを消すコマンドやexeが世の中にはありますが、大体は消す前に「本当に消しますか?」という質問が出てくると思います。

これは、間違って消したときに取り返しのつかないことになったら悲しいので(あるいはその悲しい目にあった人がいたので)そんなことになる前に一歩踏みとどまるきっかけを意図的に(そのコマンドやexeを作った人が)作っているものです。

例えば自分でファイルを100個コピーするバッチを作ったとして、その「悲しい思いをすることを止める」機能はついていません。

何が言いたいかというと、ファイルを消したりしてはいけないところ(例えばC直下とか)や、むやみに増やしてはいけないところを、作っただけのバッチファイルは判断できないのです。

更に意味が解らなかったので端的にいうと

バッチファイルをサーバやC直下で実行しない。悲しいことになるかもしれないから

ということです。

とりあえずこの記事を読む…人がいるか分かりませんが、読む人で「バッチファイルってなんやねん」なんて人がいたら

「むやみやたらにいろんなところでダブルクリックしてはいけない。ダブルクリックする箇所は確認しよう」

程度のことを覚えておいてください。

おまけ

バッチファイルでも何でも作りこんでいければ「こんなことが起こると困る」に対しての回避方法を入れる発想になります。

いわゆる誤作動防止や安全に故障させるとかそんな感じのことです。

また、私が書いているのはそもそも使う側に気を付けることを促すことです。

これらのことは、ソフト開発においてのリスク回避の発想につながるかな、と思うので一度くらいは(会社でなく自分の環境で)嫌な目に遭って

何故想定外のいやなことを回避するべきなのかなーを考えてみるといいかもしれません。