• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コマンドプロンプトの質問です。)

コマンドプロンプトでEndLocalコマンドを使わなくても大丈夫なのでしょうか?

このQ&Aのポイント
  • コマンドプロンプトでのEndLocalコマンドの使用について疑問があります。SetLocalコマンドの効果はバッチフィルの終わりまでとされていますが、EndLocalコマンドを使わないときは問題ありませんか?
  • バッチファイルの先頭と最後にSetLocalコマンドとEndLocalコマンドを記述する習慣がありますが、ifの中でgoto :EOFを使用しEndLocalコマンドを実行しない場合もあるようです。このような方法で終了しても問題はありませんか?
  • 一部の変数がローカル変数として設定されているにも関わらず、EndLocalコマンドを使用しない場合でも問題はありませんか?私はたまに気になるのでSetコマンドで確認していますが、問題はないのか心配です。皆さんはどうしていますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>EndLocalコマンドを実行しなくても大丈夫の意味ですか? 「if の中に簡単に goto :EOF を書き、EndLocalコマンドを実行しないでバッチ処理を終わっています。」とあなたが仰っているのですから改めて聞くまでもないでしょう。 バッチファイルで処理を中断することは何処にも影響を及ぼさないはずです。 但し、「実行する(バッチファイルに記載された)自作のプログラム等の扱いを間違わなければ」と言う条件が付きます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

バッチファイルを使わなくなって10年以上になります。 >気になります。 気になるのでしたら最後の行にEndLocalコマンドを書き、その前の行に他で使っていない終了用のラベルを書けば良いと思います。 意識して終了用のラベルに飛ばす習慣を付ければ気にしないで済みます。 無意識にgoto :EOFを途中で使っても従来どおりですから影響ありません。

Agusuke
質問者

補足

「無意識にgoto :EOFを途中で使っても従来どおりですから影響ありません。」の意味は、EndLocalコマンドを実行しなくても大丈夫の意味ですか? 無精者の質問に我慢してお答えください。『単純な使い方なら、先頭にSetLocalが有れば、EndLocalが何処にも無くても大丈夫』と考えて良いのですか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • コマンドプロンプトが使えない...

    コマンドプロンプトでpingやipconfigをうつと,”内部コマンド,または外部コマンド操作可能なプログラムまたはバッチファイルとして認識されていません”とでてきて実行されません。いろいろ調べてみたのですが,結局わかりませんでした。おわかりになる方,何卒よろしくお願いします。

  • コマンドプロンプトでコマンドが認識されない

    c初心者なのですが、コマンドプロンプトでコマンドがうまく実行できません。 インストールしたものは、MinGWとmsysです。 環境変数もあまりよくわかっていませんが一応設定しました。 http://www.knatech.info/Dev-mingw-install.html こちらの環境変数の設定を参考に設定しました。 そしてコマンドプロンプトでmakeをうつと make: *** No targets specified and no makefile found. Stop. となり、こちらは認識しているようですが、gccと打つと 'gcc' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 とでてしまいます。 どのようにしたらgccを認識してくれるのでしょうか。 初めてなことだらけで、質問も分かりにくいところがあるかもしれませんがよろしくお願いします。

  • コマンドプロンプトのcallと遅延展開

    こんにちは。 コマンドプロンプトにおいて、call と !・・・! による環境変数の遅延展開について、 1つ疑問に思う事がありましたので、質問させて頂きました。 まず、以下のようなバッチスクリプトtest.batを作成しました。 -------------------------------------------------------- @echo off setlocal setlocal enabledelayedexpansion set aaa=XXX^|cat echo 1:!aaa! call echo 2:!aaa! echo 3:%aaa% call echo 4:%aaa% --------------------------------------------------------- これを実行した結果、以下のようになりました。 --------------------------------------------------------- C:\Users\kei >test.bat 1:XXX|cat 3:XXX 4:XXX --------------------------------------------------------- callは、それ以降のコマンドラインを2度解析するだけなのに、 なぜ、call echo 2:!aaa! の行を実行した時に、何も出力されないのでしょうか?

  • コマンドプロンプトのコマンドについてなんですが。

    こんにちわ。仕事で使っているソフトでなんですが、バッチファイルを 利用して、各機能を動かしているようです。(僕はバッチファイルの プログラムはわかりません)中身を見ると、cdhというのを多用しています。 いろいろ調べたのですが、cdはディレクトリの変更用コマンドで理解 できたのですが、cdhというコマンドはありませんでした。実際に コマンドプロンプトでやってみると、特定のディレクトリに行くことが わかりました。環境変数かと思い、見てみると、そのディレクトリの パスがありましたが、変数名はRPHOMEで内容がそのパスです。 さらに、これをどこかでcdhかhに当てはめていると思うのですが、 それはどこで指定されているのでしょうか? 勝手に思いこんでいるのですが、ご指摘、アドバイスの方よろしくお願い致します<(_ _)>

  • コマンドプロンプトについて

    OSはXP Home Editionです。 コマンドプロンプトでタスク情報を表示しようと思って、tasklistで実行してみると、内部または外部コマンド、操作可能なプログラム、バッチファイルとして認識されていませんとでます。 何故でしょうか?

  • コマンドプロンプトを最小化してバッチを実行したい

    バッチ実行時にコマンドプロンプト画面を最小化したいのですが バッチファイルにどのようなコマンドを設定すればよいのでしょうか?

  • コマンドプロンプト、バッチファイル

    解決法を探してみたのですが、見つからないのでご教授ください。 コマンドプロンプトでどんなコマンド(ipconfig,ping,etc)を入力しても 「操作可能なプログラムまたはバッチ ファイルとして認識されていません。」という警告が出るようになってしまいました。 多分、原因はJavaの勉強をしていたときに環境変数のパスをいじってしまったからだと思います。 調べていて、思ったことなのですが、カレントディレクトリにバッチファイル(.bat)というファイルが見当たりません。これがないからかなとも思っています。 コマンドプロンプトからのコマンド入力ができるように解決方法をご教授ください。

  • コマンドプロンプトについて

    コマンドプロンプトのコマンドに『set』があります。 2000/XPにおいては、オプションで[/P]を指定することによりキーボードからの入力を変数にセットできますがWindowsNTにおいても使用することが出来るのでしょうか?(キーボード入力によって実行する処理を変えたい) また、不可能である場合他の方法があればご教授していただけるようお願いします。

  • コマンドプロンプトのバッチファイル実行までの速度

    コマンドプロンプトのバッチファイルを作成したのですが このバッチファイルの実行するまでの処理速度を、コマンドプロンプト上に表示させたいのですが、どのようなコマンドを組めばよいのでしょうか? ちなみにバッチファイルの中身は、 @echo off start http://www.yahoo.co.jp です。よろしくおねがいします。

  • 64bitOSでの32bitのコマンドプロンプト

    いま64bitOSのPCを使用しています。 主に使っているソフトが32bitのものです。 そのソフト等をいろいろカスタマイズするために、レジストリにたくさん値を設定して 使用しています。 レジストリ追加用にregeditするバッチをたくさん作りましたが、 今使用している64bitOSでそのバッチを実行すると、32bitのexeが動きません。 レジストリが64bitの箇所に登録されます。 32bit用のregeditを行うために、バッチを全て直すのはとても大変なので、 バッチを実行したときに、32bit用のコマンドプロンプトが起動すればいいのではと考えました。 32bit用のコマンドプロンプトを起動してregeditしたら32bit用の箇所にレジストリが登録されました。 バッチを起動するときだけ、32bit用のコマンドプロンプトが起動するように設定する部分は ありませんか? (コマンドプロンプトのpathがc:\windows\syswow64\cmd.exeになるような感じ?) windows7 sp1 pro 64bitです。 伝わりにくい文で申し訳ありませんが、お教え願います。