Windowsバッチで else の書き方に戸惑う[Windows]
(2026-07-09 22:23:16) by shinoda


Windows(てか、DOSって書いた方が正解?)のバッチファイル(BAT ファイル)を久しぶりに書かないといけなくなった。

つーか、「久しぶり」ってのがウソで、正直言うと自分で一から BAT ファイルを書いたことはほとんどない。そういう仕事を受けたことがないもんで。だいたい UNIX 系が多かったからなあ。

とりあえずメモしとく。

IF 文の ELSE は、必ず ") ELSE (" と書かないといけない。")" の後ろで改行して "ELSE" を書くとエラーとなる。
ELSE を独立した命令と判断し

'ELSE' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

なんてことに・・・

まあ、「先頭に英字の文言が出てきたら命令と判断する」って単純な仕様なんだろうが、それにしてもなんだかなあ・・・

俺はそもそも if と else を同じ面で合わせたいので、

if (hoge) {
    hogehoge;
}
else {
    monyomonyo;
}

という書き方派なのよ。多分、(特に UNIX 系のプログラマは)

if (hoge) {
    hogehoge;
} else {
    monyomonyo;
}

って書きたい派が多いと思うけど。(なんとなく、ネット上のソースなんかを見ると)

でも、bash スクリプトでも

if [[ "$a" == "y" ]]; then
    echo "あなたはやましろしんご";
else
    echo "あなたはやなぎさわしんご";
fi

って書くでしょ?やっぱ ELSE の面は IF と合わせたいのよね、生理的に(笑)

コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8