• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチファイルを1個だけしか起動しないようにしたい)

バッチファイルを1個だけ起動する方法

このQ&Aのポイント
  • バッチファイルを実行する際に、コマンドプロンプトが2個表示される問題が発生することがあります。この問題を解決するためには、いくつかの方法があります。
  • まず、バッチファイルの中に処理を追加することで、2回の実行を検知し、2回目の実行を無視することができます。
  • また、バッチファイルをショートカットとして作成し、ショートカットのプロパティで「1回のみ実行」オプションを有効にする方法もあります。これにより、同じバッチファイルが2回起動されることを防ぐことができます。

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

  • ベストアンサー
回答No.2

簡単にやるなら、大きな方針は、 test.batは、まずc:\にtestbat.txtを見つけたら、そこで終わる。 test.batは最初にc:\testbat.txtがあるかないかと見て、c:\testbat.txtがなかったら、c:\testbat.txtを作成、最後まで実行して、最後の最後にc:\testbat.txtを削除する。 ことである。

ID_20150222
質問者

お礼

教えていただきましたように、 先頭に if exist test.txt exit echo > test.txt を、 末尾に del test.txt を入れて確認しましたところ、 ダブルクリックを連続で何度か繰り返してみましたが、 1個だけ起動するようになりました。 ありがとうございました。

その他の回答 (7)

回答No.8

リダイレクション等のコードをすっと書けてしまうのは、質問者はベテランだなあ。嫌みでは無くて。バッチファイルの先頭にif exist test.txt exitをつけて以後の処理するとき、 クリックやキー操作が猛烈に速いと、ファイル作成・判定がバッチファイルに追いつかない恐れがありますね。 「ファイル存在判定、1秒wait、ファイル存在判定」をセットにすれば、もっと安心ではないかと私は思いました。

ID_20150222
質問者

お礼

つまり、 2つのバッチファイルが起動してしまった場合、 1つ目のバッチファイルでtest.txtが作成される前に、 2つ目のバッチファイルでtest.txtがないと 誤判定されてしまうようなことがあるということですね。 教えていただきましたように以下のように対応します。 if exist test.txt exit timeout 1 > null if exist test.txt exit ありがとうございました。

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.7

>ENTER+クリックは2回実行されました。 理由についてはわかりません。 そんな機能は意味ないと思いますし。 私もこんなのは初めて見ました。 どこかで誤作動しているのだと思います。

ID_20150222
質問者

お礼

ありがとうございました。

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.6

そんな事は言ってない。 クリック+ENTERと ENTER+クリックは違います。 こちらで確認しましたが、 クリック+ENTERは1回 ENTER+クリックは2回実行されました。 いずれにしても >1回ではなく2回実行されたと誤認識されて はおかしいです。そんな設定もありません。 Windowsをインストールし直したほうが良いのでは?と思いました。 上書きで直るのかクリーンインストールが必要かはわかりませんが。

ID_20150222
質問者

お礼

ENTERキーを押しながらクリックではなくて、 クリックしてファイルを選択してから、 ENTERキー押すと1つだけ起動しました。 ありがとうございました。 なお、 >ENTER+クリックは2回実行されました。 と書かれていますが、 この理由が分かりましたら、 教えていただけないでしょうか。

  • jrn700
  • ベストアンサー率18% (251/1372)
回答No.5

ダブルクリックで2重になる事があるのでしたら、次のような方法では駄目なのですか? 「右クリック」で「開く」

ID_20150222
質問者

お礼

「右クリック」の「開く」で1つだけ起動しました。 ありがとうございました。

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.4

ダブルクリックではなくて クリック+ENTERではどうかな?

ID_20150222
質問者

お礼

回答ありがとうございます。 ENTERキーを押しながら、 バッチファイル(test.bat)をクリックしてみましたが、 非常にたくさんのコマンドプロンプト(50個以上)が起動して、 各々のコマンドプロンプトでバッチファイル(test.bat) が実行されてしまいます。 何度か確認しましたが同じ現象が発生します。 エクスプローラー上のファイルを クリック+ENTERすると何が起きるのでしょうか。

  • TIGANS
  • ベストアンサー率35% (245/681)
回答No.3

Windows10ならPowerShell系使えると思うので下記ではどうかな? https://qa.itmedia.co.jp/qa8490315.html

ID_20150222
質問者

お礼

教えていただきましたリンク先を見てみましたが、 私にはかなり敷居が高そうで、 すぐには対応できそうにないので、 今後の参考にさせて頂きます。 ありがとうございました。

回答No.1

簡単にやるなら、大きな方針は、 test.batは、c:\にtestbat.txtを見つけたら、そこで終わる。 c:\にtestbat.txtがなかったら、test.batは最後まで実行して、最後にc:\testbat.txtを削除する。 ことである。

ID_20150222
質問者

お礼

No2でお礼コメントをします。 ありがとうございました。

関連するQ&A