
こんにちは、皆さんの知恵を貸してください。
自分はプログラムとかコマンドプロンプトなどはまったくの初心者ですが、研究で必要に迫られて現在勉強中・修行中の大学院生です。
OSはウインドウズXPです。コマンドプロンプトを起動して、とある計算コードを走らせます。計算時間が10時間弱かかるので連続計算させる為にバッチファイルを作ることにしました。
作製してみたところ、コードのexeファイルが起動すると新しいウインドウができてそこで実行されます。そしてそのウインドウを閉じないとバッチファイルに記述した次のファイルが読み込まれません。
週末とか、深夜とかにPCの前にいなくても計算を走らせる為に組んだバッチですが、手動でウインドウを消すのであればまったく無意味です。
ここで質問が2つあります。
1.計算が終了した、と認識させるにはどういう手段があるでしょう?
2.計算が終了したらそのファイル(ウインドウ)を閉じるようなコマンドって存在しますか?
1で計算終了を判断し、2でそのウインドウを削除する事ができれば次の計算が走るようになると思うのですが…
IFとかCALLとか考えてみたのですが、どうにもわからずパニックに陥っててます。どうか皆さん、よろしくお願いします。
(;_;)
No.3ベストアンサー
- 回答日時:
問題を整理してみましょう。
現在実現したいことは、こういうことでよろしいでしょうか。
1.計算時間が10時間程度かかるEXE形式の実行ファイルがある。
2.それをバッチファイルから、順次呼び出し、最後まで勝手に動かしたい。
これを実現するためには、いくつか確認すべきことがあります。
まず、大前提として、そのEXEのプログラムは自分を終了させる方法をもたないのでしょうか?
それがいわゆるGUIアプリケーションで、終了ボタンや右肩のXボタンを押さなければ終了できないというのであれば、そもそもバッチファイルから連続稼動はあきらめるしかありません。できないものはできないのです。
そのEXEが、どういった出自のものかわかりませんが、例えば起動時にオプションを渡すことで、計算終了後に自動的に終了するとか、そういった機能があれば、問題ありませんが、そうでないならバッチファイルから制御するのは、あきらめて別の方策を考えるほうが無難です。
バッチファイルは、自ら終了しないプログラムに対して、何か制御をするような機能は有していません。
また、計算が終了したことを知る方法も、そのEXEが提供していないのならば、ありません。
しかし、例えば以下のような条件を満たすのであれば、別の方法が可能かもしれません。バッチファイルよりは敷居が高いですけど。
A.少なくともマウスを使わず、キーボードだけの操作で終了が可能である。
B.起動すると、ウインドウのタイトルバーにアプリ名等が表示される。
C.計算終了した旨が、やはりウインドウのタイトルバーに表示される。
WSH上で、JScriptやVBScriptを組み合わせてコーディングすれば、起動されたタイトルバーの文字列からウインドウを特定し、そこに対してキー入力を送ることができます。
まあ、仮にA.の条件が満たせなかった場合、マウスイベントを送り込めるフリーウェアもいくつかあるので、そういったものを使う方法もありますが・・・。
いずれにしても、この無理やりな方法を実現するためには、B.やC.の方法は必須でしょう。
現在わかるところから言えるのは、このくらいですね。
もう少し、そのEXE自体の仕様がわかれば別の対処もあるかもしれませんけど、問題の根幹は、そのEXE自体の仕様だという認識をもってください。
以上 参考までに。
御礼が遅くなって申し訳ありませんでした。
やはりバッチファイルからの制御は無理っぽいですね。列挙されたABCのうち、Aはムリっぽいです。BとCは表示されていると思います。
ただ、ウインドウをたくさん開くことで処理速度は遅くなりますが、同時計算が可能ということがわかりましたので休日や連休などはその方法で何とか計算できるようになりました。
回答ありがとうございました。
No.5
- 回答日時:
プログラムがきちんと終了していないのが原因だと思います。
計算が終わった後にプログラムが何をしているか分かりませんけど、空ループか、データ入力待ち等のアイドリングしてるんだと思います。人間としては計算終了はどうやって判定していますか?タイトルに終了メッセージがでるのでしょうか?Windowsの中にメッセージが出るのでしょうか?ファイルが出力されるとかで計算終了が分かるのでしょうか?
まさかCPU占有率が0%になるから、終わったと判定してるということはないと思いますが・・
>計算が終了するとCPU稼働率が100%から数%まで落ちます
これはプログラムが終了していなくても、こういう結果になる場合があります。
同時に走らせることが可能ならば、リレーはアバウトでも大丈夫そうですね。9時間位ずつずらして、Windowsのタスクで走らせるなどの対策で、同時に走らせる場合でもちょっと高速化できるかもしれません。
お礼が遅くなって申し訳ありませんでした。しばらくぶりにGooを見て、お礼を差し上げていないことに気づきまして…
一応、問題は解決しました。
同時計算をさせて、2、3日後ぐらいに手動でウインドウを閉じるという作業を繰り返しました。
回答ありがとうございました!
No.4
- 回答日時:
今回のケースでは、ロケットマウスが使えそうです。

No.2
- 回答日時:
そのプログラムがどの様なものかわからないのですが、Dosアプリで「計算終了=プログラムの終了」という作りであるならば、そのEXEフ
ァイルのプロパティで「終了時にウィンドウを閉じる」としてもだめでしょうか?お礼が遅くなって申し訳ありません。
プロパティに「終了時にウィンドウを閉じる」というのがあればすべて解決できるのですが、残念ながらありませんでした。
ただ、「計算終了=プログラムの終了」は認識されているようです。Execute Window の左下には「実行中」ないし「終了」の文字が書かれていて、計算が終了するとCPU稼働率が100%から数%まで落ちますので。
うーん。難しいです。回答ありがとうございました。
あと、この欄に書かせていただくのは申し訳ないとは存じますが、No.1の方へのお礼の冒頭で「回答が遅くなって」というのを「お礼が遅くなって」と訂正させていただきます。すいませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- 数学 『最後の自然数はどんな数か』 3 2023/06/26 20:38
- Chrome(クローム) 最近Win10にてブラウザが左にスッと隠れていく現象に悩まされてます 3 2023/07/22 23:11
- 財務・会計・経理 もう一度減価償却について質問です。 (pc11月31日に、利用開始して1月末決算) 決算終了後の減価 2 2023/04/12 15:08
- 生物学 【生命科学】ヒトが1日に消費するATP量?(精度を変えて再計算) 3 2022/10/07 18:48
- その他(ソフトウェア) F-BASICで計算中の実行が中途で勝手に止まり、大変困っています。 2 2023/03/02 16:15
- ネットワーク 通信量を見たい 3 2023/03/01 07:47
- その他(ビジネス・キャリア) 今時の派遣社員って仕事が出来ないだけじゃなく計算も出来ないのか? 8 2022/07/22 20:53
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
このQ&Aを見た人はこんなQ&Aも見ています
-
バッチ終了時にDOS窓を閉じるコマンド
その他(プログラミング・Web制作)
-
batファイル実行後、cmdを自動終了させたい
Windows 7
-
バッチ実行後DOS窓を閉じるには
Windows Me・NT・2000
-
-
4
バッチファイルでキー操作を行う。
その他(プログラミング・Web制作)
-
5
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
6
バッチファイル 特定ウインドウの最小化
AJAX
-
7
バッチファイルで、全てのウィンドウを最小化
その他(プログラミング・Web制作)
-
8
コマンドプロンプト(バッチファイル)でフォルダを閉じるにはどうすればよいのでしょうか?
その他(プログラミング・Web制作)
-
9
バッチファイルについて教えてください
その他(プログラミング・Web制作)
-
10
バッチファイルでのエクスプローラー終了
Windows 10
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
Word2007 図の属性一括変更(行...
-
エクセルマクロで計算結果の値...
-
アルゴリズムの時間計算量、空...
-
RSA暗号解読
-
電卓作成(緊急です!!)
-
チューリングマシンの状態数に...
-
円形ボリュームのUIの実装方法
-
Matlabでのニュートン法について
-
万年暦を導き出すプログラミング
-
チューリングマシンの限界について
-
プログラミングの言い回しを教...
-
VB2008で小数点以下3桁を表示...
-
パチンコゲームを作りたいので...
-
グラフの描き方
-
表示アプレットと計算用プログ...
-
色々な計算をさせる為に、プロ...
-
等高線を計算したい
-
プログラム初心者の質問です ア...
-
G3とG4の違いは何でしょうか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
変化させるセルが変化しない
-
エクセルで特定のセルのみを任...
-
CとFORTRANの計算速度はどちら...
-
モジュロ
-
バッチファイルでウインドウを...
-
Visual C++でdebugとreleaseで...
-
y=(x^2 +3x+1)^4を微分の定義を...
-
入射角反射角
-
スレッド処理からダイアログを...
-
60進数の四則計算
-
Javaと他言語比較について
-
VBAで関数をつくる
-
C言語 Σをつかったプログラム
-
CRC8を教えてください
-
C言語についてです。 再帰を使...
-
C言語について 下の画像は do-w...
おすすめ情報