OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

バッチファイル内の各コマンドが順番に実行される条件

  • 暇なときにでも
  • 質問No.5702744
  • 閲覧数4658
  • ありがとう数6
  • 気になる数0
  • 回答数6
  • コメント数0

お礼率 41% (5/12)

Windows環境にてDOSコマンドでバッチファイルを作成して実行します。
バッチファイル内には複数のコマンドを記述しており、上から順番に
処理されて処理が完了してから次のコマンドを実行することを期待しています。

例) ping PC_NAME_A
   ping PC_NAME_B

実際に実行してみて1つ目のコマンドが終了してから、2つ目の
コマンドが実行されているのは確認できているのですが、
この「1つ目のコマンドが終了してから次のコマンドを実行する」という
仕様を裏付ける記事などが見つけられません。(Microsoftのサイトなど)
どなたかご存知の方がいらっしゃいましたら教えてください。
通報する
  • 回答数6
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全6件)

  • 回答No.2
レベル9

ベストアンサー率 22% (19/85)

そういうものです。って言うんじゃだめなんですね。 処理の順番が規定されていないと、順次処理が 必要なものはバッチで書けなくなるんですが… 一般的な説明でよければですが Wikipediaのバッチ処理を参照してみてください。 ご要望に沿えるかどうかは疑問ですが。 ...続きを読む
そういうものです。って言うんじゃだめなんですね。
処理の順番が規定されていないと、順次処理が
必要なものはバッチで書けなくなるんですが…

一般的な説明でよければですが
Wikipediaのバッチ処理を参照してみてください。

ご要望に沿えるかどうかは疑問ですが。
お礼コメント
blink-182

お礼率 41% (5/12)

回答ありがとうございます。
改めて勉強になりました。
投稿日時 - 2010-02-24 16:20:44

  • 回答No.1
レベル14

ベストアンサー率 51% (804/1555)

こんにちは  マルチタスクOSでは、実行順序は保証されません。  実行順序を確保するときは、start コマンドの引数としてコマンドを指定します。 start /wait ping PC_NAME_A start /wait ping PC_NAME_B
こんにちは
 マルチタスクOSでは、実行順序は保証されません。
 実行順序を確保するときは、start コマンドの引数としてコマンドを指定します。

start /wait ping PC_NAME_A
start /wait ping PC_NAME_B
  • 回答No.3
レベル14

ベストアンサー率 51% (804/1555)

こんにちは #1の訂正です。 >マルチタスクOSでは、実行順序は保証されません。 Windows 95以降のWindowsの BATコマンドでは書かれた実行順序は保証されません。 ...続きを読む
こんにちは
#1の訂正です。
>マルチタスクOSでは、実行順序は保証されません。
Windows 95以降のWindowsの BATコマンドでは書かれた実行順序は保証されません。
補足コメント
blink-182

お礼率 41% (5/12)

回答ありがとうございます。
順序が保障される、されないのどちらの場合でも裏付けとなる情報が
欲しいのです・・・
実行順序が保障されなければそれはそれでA88No8さんのおっしゃる通り
start /wait で対応になるのかとは思っています。
投稿日時 - 2010-02-24 16:16:57
  • 回答No.4
レベル14

ベストアンサー率 51% (804/1555)

こんにちは  #3の訂正です。  勘違いしてました。心配させてしまってごめんなさいm(__;m  参考URLは、マイクロソフトが技術情報を公開している microsoft technetのURLです。  そこに「バッチ ファイルを使用する」コンテンツがあって、実行順序に関して以下のように書いてありました。 一部引用します。 >コマンド プロンプトでそのファイル名を入力すると、Cmd.e ...続きを読む
こんにちは
 #3の訂正です。
 勘違いしてました。心配させてしまってごめんなさいm(__;m
 参考URLは、マイクロソフトが技術情報を公開している microsoft technetのURLです。
 そこに「バッチ ファイルを使用する」コンテンツがあって、実行順序に関して以下のように書いてありました。 一部引用します。

>コマンド プロンプトでそのファイル名を入力すると、Cmd.exe によってファイルに記述されている順番でコマンドが実行されます。

 従って記述されている順番でコマンドは実行されます。
 注意すべき点は、ここには「順番で実行されるが先に実行したタスクの終了を待つ」とは一切書かれていないです。
 つまり、OSの制限にかからない限り、タスクの終了を待たずに次々に新たなタスクを実行しないとは云っていないことです(リソースが空いている間は、次々に実行できるからマルチタスクですよね)。

 私が間違ったのは、実際に先に処理時間のかかるタスクを記述して、次に短い処理時間のタスクを書いたとき、あたかも短いタスクが先に終わるので順番を無視して先に走ったように感じてしまったことでしたm(__)m
お礼コメント
blink-182

お礼率 41% (5/12)

ご回答ありがとうございます。
結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。
投稿日時 - 2010-02-25 19:19:58
  • 回答No.5
レベル9

ベストアンサー率 22% (19/85)

ごめんなさい。 NTカーネル以降はDOS上のコマンドと言えども記述どおりに 処理されないことがあるようです。 OSの仕様です。 A88No8さんの認識が正しいようですね。 不勉強でした失礼いたしました。 ...続きを読む
ごめんなさい。

NTカーネル以降はDOS上のコマンドと言えども記述どおりに
処理されないことがあるようです。
OSの仕様です。

A88No8さんの認識が正しいようですね。
不勉強でした失礼いたしました。
お礼コメント
blink-182

お礼率 41% (5/12)

ご回答ありがとうございます。
結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。
投稿日時 - 2010-02-25 19:19:23
  • 回答No.6
レベル14

ベストアンサー率 29% (3627/12448)

他カテゴリのカテゴリマスター
それはプログラムの書き方で決まります。 例えばping.exeは処理が終了するまで次の入力を受け付けませんが、Windowsのアクセサリにある電卓(calc.exe)は電卓のウィンドウが表示されればコマンドプロンプトは次の入力待ちになります。 プログラムを起動したときにWindowsの新規タスクとして実行した場合とcmd.exeの子プロセスととして実行したという違いです。 一般的なコマンドラインアプ ...続きを読む
それはプログラムの書き方で決まります。

例えばping.exeは処理が終了するまで次の入力を受け付けませんが、Windowsのアクセサリにある電卓(calc.exe)は電卓のウィンドウが表示されればコマンドプロンプトは次の入力待ちになります。

プログラムを起動したときにWindowsの新規タスクとして実行した場合とcmd.exeの子プロセスととして実行したという違いです。

一般的なコマンドラインアプリケーションは
main() {
 ~色々な処理~
 exit;
}
という書き方で、main()関数が終了するまでプロセスを占有します。
マルチタスク(或いはマルチセッション)の場合はセッションIDを新規取得しOSに処理を委託してからプロセスを終了します。

MSDNのセッション管理とかマルチセッション関連の項目を見ればわかるはずです。
※コマンドラインアプリケーションとWindowsアプリケーションの違いでもOK。
お礼コメント
blink-182

お礼率 41% (5/12)

ご回答ありがとうございます。
結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。
投稿日時 - 2010-02-25 19:18:40
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
あなたが体験したトラブルや解決方法を共有しませんか?
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ