バッチファイルのif elseには秘密があってそれは、括弧"("または")"の両側には必ずスペースが必要だということなんだ。あ、だから両側というか、括弧記号の隣に何かがくる場合は必ずその間にスペースを区切り文字としていれてやらないと駄目!ということなんだね。
では実際にエラーとならないコードを見てみよう。
@echo off set a=3 if %a%==1 ( echo its 1 ) else if %a%==2 ( echo its 2 ) else ( echo its not 1 nor 2 ) pause
これの出力は、
its not 1 nor 2 続行するには何かキーを押してください . . .
次にエラーとなるコードが以下だ。
(if 文の括弧の前後にあったスペースを省略してみただけ。)
@echo off set a=3 if %a%==1( echo its 1 )else if %a%==2( echo its 2 ) else( echo its not 1 nor 2 ) pause
これの実行結果は、そう、この場合は最後にpauseを入れているにもかかわらず、何も言わずにコマンドプロンプトウィンドウが閉じてしまうんだね。これでは記述のどこがまずいのかもわからないよな。一箇所だけでも。いいか、ただの一箇所だけでも、if文の前後の括弧のスペースを忘れるとだめなんだぜ。信じられないだろ?でもこれが事実なんだ。
まあしかし、if〜else構文なんかは使えて当然便利なものなのだから、このことを覚えておいてくれよな、じゃ!