- ベストアンサー
バッチファイルの構文について
会社の人が作った.batファイルを参考に、自分で勉強しています。 ごく簡単なことですが、質問です。 会社の人が作ったファイルは、コマンドの最後に必ず「:END」「EXIT」と書かれています。 ファイルのコピーなど、構文が一行で済んでいるような簡単なものでも書かれています。 これを書いても書かなくてもbatファイルの動作は同じで、コマンドプロンプトは動作しだい閉じてくれます。 このコマンドは書いてもいいし、書かなくても自動的に実行されるというような類のものなのでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ちゃんとプログラムを勉強した人が書いたんでしょうね。 今のDOSのバッチ処理は、ENDやEXITを書かなくても、処理を終了して ファイルを閉じてくれるんですが、昔のこの手の処理は「処理終了」 と「ファイルクローズ」を明示的に指定しないと、ちゃんと動作しない ばかりか、次の処理が起動してくれなかったんですよ。 そういう時代からコードを書いていれば、最後の行に「後始末」を きっちり書いてないとなんだか気分がよくないんですね。 私、気持ちは非常によく分かります・・・。
その他の回答 (2)
- shakunin
- ベストアンサー率44% (53/118)
構文が一行のものにも付けているところをみると、単なるこだわりでしょう。 :ENDはラベルで任意に指定するものですが、単独ではあまり意味がありませんし、EXITは自動的に実行されますから。 私なら、簡単なバッチにはコメントもなしで済ませますね。 ただ、私も「コマンドプロンプト」を終了するとき、終了ボタンクリックではなく、いちいち「EXIT」→リターンを使いますから、何となく気持ちは分かるのですが(笑)
お礼
ご回答ありがとうございます。 ファイルの記述の好みも様々でして、社内でもキッチリ記述したい派と、 混乱を招くので不要な記述はしない派がいます。 仕事が自分の手を離れたときに問題を起こさないために、わかりやすい記述を心がけたいものです。 そこまで行けるレベルではありませんが。
「:END」はラベルですね。IF分で条件判断し、GOTOでその後の処理を飛ばして強制終了させる、という手段に使えます。 おそらくそういう処理を後で付け加える予定だったのでしょう。そうでなくても、プログラムの最後を明示的に示したかったのかもしれません。 一見何の意味もなさそうなことが、実は重要な意味を持つことがあります。 プログラムを組む時の注意事項がいくつかあり、その1つに見通しのいいプログラムを組む、というのがあります。どこで何をしているのかが一目でわからないと、あとで修正するときに大変になるのです。 そのためにREM文を使って注釈を入れたり、ひとまとまりのルーチンだとわかるようにラベルを入れたりするわけです。 このあたりのことは、きちんとしたプログラム技術解説書に書いてあります。会社の人は、おそらくそういう勉強をしていたのでしょう。
お礼
ご回答ありがとうございます。 社内で参考にしているバッチファイルは沢山あるのですが、 大抵は他人が修正・利用する事を考えては作られてはいないようでした。 いろいろと参考にして勉強します。
お礼
ご回答ありがとうございます。 > そういう時代からコードを書いていれば、最後の行に「後始末」を > きっちり書いてないとなんだか気分がよくないんですね。 私はN88-BASICを学校で勉強したくらいですが、キッチリ書かないと気がすまない気持ちは同じです。