• ベストアンサー

バッチファイルで多重起動を防ぐ

siddhaarthaの回答

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

バッチファイル上でタスクを監視するのは出来ないと思います。 バッチから起動している「とあるプログラム」が何言語で作られているかわかりませんが、そっちで2重起動禁止は実現できませんか? もしくは、バッチファイルの実行中はAというファイルを作成しておくようにして、「Aと言うファイルがあればプログラムを起動しない」という制御を入れるとか・・・。 ※この場合、バッチファイルはプログラムが終了するまでWAITしないと意味ないですけど^^;

April8
質問者

お礼

とあるプログラムはVCで作成されています。 ですので、2重起動禁止は実現できるのですが‥ バージョン管理があいまいなソースのため、 下手に内容は触りたくないのです。 実行中にファイルを作成しておく件、なるほどと思いました!(@o@) しかし何らかの原因で1度プログラムがこけてしまうと2度と動作しないんですよね・・・ うーん・・悩みます。 ご回答ありがとうございました(^^)

関連するQ&A

  • バッチファイルでEXCELを起動し、マクロ処理の完了を検出する方法

    バッチファイルでEXCELを起動し、マクロ処理の完了を検出する方法 バッチファイルでEXCELを起動し、マクロ処理(伝票印刷)が完了するのを待ってバッチファイルの次の処理を行ないたいのですが、よい方法があれば教えてください。 少なくとも、マクロ終了直前にテキストファイルに文字を書出し、バッチファイル側でテキストファイルを読み出せば判定できるのではないかと思いますが、もっとすっきりしたやり方はないでしょうか? できるだけ自動処理したいのでPAUSEで待てばいいというのはなしでお願いします。

  • バッチファイルからftpを実行時に処理完了を待たない方法

    ある市販のjava系のアプリから時間起動でバッチファイルを起動します そのアプリは同時に複数のバッチファイルを起動できない仕様で ある外部プログラム(バッチファイル)を起動したら処理の完了を 待ってから次の処理バッチファイルを起動するのです 同時起動はできません なので最初に起動したバッチファイルがフリーズしてしまうと 次のバッチファイルが起動できずに永遠と待ち状態になってしまうんです そのソフトのメーカーに問い合わせしてみたのですが 呼び出し側はタイムアウトさせるような設定はない仕様なので 呼び出ししたプログラムのほうでタイムアウトするようにして下さい という回答でした なんとか回避しようと そのバッチファイルは ftp -s:c:\cmd.txt というようにftpコマンドを利用しているのですが (稀に何らかの原因でftpがフリーズしてしまう現象があります) ftpコマンドがフリーズしてしまったらどうしょうもないですよね・・・ この現象を回避したくて バッチファイルを start ftp -s:c:\cmd.txt exit に変更しました こうすればftpの完了を待たずにバッチファイルが終了するので たとえftpの処理が一つフリーズしてしまったとしても 別のバッチファイルの起動は問題なく行えると考えたからです しかしその市販アプリが内部的にどのようにバッチファイルを起動しているかわからないのですがテストしてみましたところ (ftpのコマンドをわざとquitしないようにして終了しないftp処理にして バッチファイルを起動してみたのです) 結果としては起動したバッチファイルが完了したとはみなしてくれず 次のバッチファイル起動ができないまま永遠に待ち状態になってしまいました・・・ バッチファイルからftpコマンドを別プロセスで起動する (ftpの完了を待たずにバッチファイルを終了させる) という事はできないでしょうか? アドバイスお願い致します

  • DOSのバッチファイルでAPを起動する方法について

    あるAPを自動起動させたいのですが、普通にスタートアップにそのAPのショートカットを設定すると 「ほかのプログラムがビジー状態のため、この作業を完了できません。[切り替え]を選んでビジー状態のプログラムに移り、問題を解消してください。」 と出てきて、まともに起動できませんでした。そこで、sleepを入れてAPの立上げ時間を遅らせようと思い、バッチファルをつくったのですが... ---------------------- sleep x cd c:\program files\xxx\xxx.exe exit ---------------------- これだと、確かにAPは起動しますが、このAPが終了するまでこのバッチは生きていますよね? APを起動したら、そのAPを終了させなくてもバッチを終了させるには どうしたらよいのでしょうか? 方法をおしえてください。

  • バッチファイルを1個だけしか起動しないようにしたい

    エクスプローラー上から バッチファイル(test.bat)を ダブルクリックしてバッチファイルを実行しています。 通常はコマンドプロンプトが1個だけ表示されて、 バッチファイルが実行して実行が終了すると コマンドプロンプトも閉じられます。 しかし、時々、 コマンドプロンプトが2個表示されることがあります。 つまり、ダブルクリックが、 1回ではなく2回実行されたと誤認識されて、 同じバッチファイル(test.bat)が 2つ起動してしまったと思われます。 当然、その後の処理はおかしくなります。 (バッチファイル(test.bat)の中に 何らかのコードを追加するなどして) 必ず1個だけしか起動しないようにすることは、 できないでしょうか。 (Windows10)

  • バッチファイルでプログラムを強制終了って・・・

    実行中のプログラムを強制終了させてしまうバッチファイルって 果たして作ることが可能なものでしょうか? アドバイスよろしくお願い致します。 対象環境はNT4サーバです。 やりたいことのイメージとしては、例えば、メモ帳でテキストを書き、そして 未保存状態で動かしっぱなしのところを、バッチで強制終了させてしまう、 そんな感じです。当然未保存云々と聞かれますけれども保存せずに強制終了!です。 (もしくは、タスクマネージャを起動し、そのアプリケーションタスクを 終了させる、と表現したほうが良いのでしょうか) ・・・果たしてそんなことってできるのでしょうか? とくにネットワークの処理は考え無く、単にそのNTマシン自身の話なのです。 よろしくお願いします。

  • Shell関数からバッチファイルを起動後に、バッチファイルが終了するまで待ちたい。

    はじめまして。 掲題の通り、VB.netからshell関数を用いてバッチファイルを起動します。 その後、そのバッチファイルが終了してログファイルの出力を完了した後に、 ファイルを開いて確認したいのです。 thread.sleepなどで大体このくらいかなという時間を待ってみる、 などのやり方しか今は思いつかないのですが、 何か明確にバッチファイルの終了を受け取れる方法は無いものでしょうか。 どなたかご存知の方がいらっしゃいましたらご教授ください。

  • バッチファイルについて

    ちょっと聞きたいんですけど、Windowsのバッチファイルを起動した場合に黒いコンソール画面が終了っていう風にでますよね。 バッチファイルの終了時にこのウインドウを閉じるようにしたいのですが、どうすればいいのでしょうか? ちなみに、プロパティにある、「終了時にウインドウを閉じる」を使わないで、できないでしょうか? プログラムで一時的に呼び出したいのですが、ウインドウが邪魔で・・・ どうか、教えてください。よろしくお願いします。

  • バッチファイルからメール作成&自動送信

    できるかわからないのですが、バッチファイルを作成して、それをタスクで自動起動しています。その起動結果をログファイルとして残し、そのログファイルをタスクが正常終了した時のみ、タスクを設定しているマシーンにメールで、添付なりリンクをはるなりして、送付したようなシステムを構築したいと思っています。それをバッチファイルに組み込みたいと思っているのですが、実現可能でしょうか?ちなみに、バッチファイルの内容は、db2コマンドの実行及びjavaファイルの実行です。 環境はwin2000です。

  • バッチファイルの同時起動を防ぎたい

    現在バッチファイルを二つ(A,B)作っております。 Aというバッチファイルを実行し完了するまで、Bというバッチファイルを実行させないようにしたいです。(逆も同様に) バッチの処理完了時間はA,B共に15秒~30秒程です。 いろいろと調べてみたのですがバッチの最初にロックファイルを作成し、実現しようかと思っています。(バッチ終了時にはロックファイルを消す処理も入れます。) また、ロックファイルを作成した後に意図せずwindowsが落ちた場合、ロックファイルが削除されず、ロックされたままになってしまう可能性もあると知りました。この場合ファイルのタイムスタンプを作成し、ロックファイルの更新日時と現在時刻の差分が1分以上ならば異常な処理があったとみなし、ロックファイルを削除をしようと考えています。 ここで質問なのですが、ロックファイルの作成はできたのですが、更新日時と現在時刻の差分をバッチで記述する方法がわかりません。調べはしたのですが、いまいちよくわからず。 どなたか、サイトまたはソースをご教授願います。 環境はwindows10です。

  • バッチファイルの起動

    JAVAで特定のファルダにあるバッチファイル(拡張子:.bat)を起動させることって可能なのでしょうか? 行いたいのは、WEBの画面上からボタンをクリックして、バッチファイルを起動させる処理です。 可能であれば、どのような方法で出来るのでしょうか?

    • ベストアンサー
    • Java