総ありがとう数 累計4,329万(2014年12月19日現在)

毎月4,000万人が利用!Q&Aでみんなで助け合い!

-PR-
blink-182

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

例) ping PC_NAME_A
   ping PC_NAME_B

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

Aみんなの回答(全6件)

回答 (全6件)

  • 2010-02-24 15:56:32
  • 回答No.2
そういうものです。って言うんじゃだめなんですね。
処理の順番が規定されていないと、順次処理が
必要なものはバッチで書けなくなるんですが…

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

ご要望に沿えるかどうかは疑問ですが。
お礼コメント
回答ありがとうございます。
改めて勉強になりました。
投稿日時 - 2010-02-24 16:20:44
  • 同意数0(0-0)
  • ありがとう数0
  • 2010-02-24 15:56:04
  • 回答No.1
こんにちは
 マルチタスクOSでは、実行順序は保証されません。
 実行順序を確保するときは、start コマンドの引数としてコマンドを指定します。

start /wait ping PC_NAME_A
start /wait ping PC_NAME_B
  • 同意数0(0-0)
  • ありがとう数0
  • 2010-02-24 15:59:28
  • 回答No.3
こんにちは
#1の訂正です。
>マルチタスクOSでは、実行順序は保証されません。
Windows 95以降のWindowsの BATコマンドでは書かれた実行順序は保証されません。
補足コメント
回答ありがとうございます。
順序が保障される、されないのどちらの場合でも裏付けとなる情報が
欲しいのです・・・
実行順序が保障されなければそれはそれでA88No8さんのおっしゃる通り
start /wait で対応になるのかとは思っています。
投稿日時 - 2010-02-24 16:16:57
  • 同意数0(0-0)
  • ありがとう数0
  • 2010-02-24 17:10:29
  • 回答No.4
こんにちは
 #3の訂正です。
 勘違いしてました。心配させてしまってごめんなさいm(__;m
 参考URLは、マイクロソフトが技術情報を公開している microsoft technetのURLです。
 そこに「バッチ ファイルを使用する」コンテンツがあって、実行順序に関して以下のように書いてありました。 一部引用します。

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

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

 私が間違ったのは、実際に先に処理時間のかかるタスクを記述して、次に短い処理時間のタスクを書いたとき、あたかも短いタスクが先に終わるので順番を無視して先に走ったように感じてしまったことでしたm(__)m
お礼コメント
ご回答ありがとうございます。
結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。
投稿日時 - 2010-02-25 19:19:58
  • 同意数0(0-0)
  • ありがとう数0
  • 2010-02-24 19:09:29
  • 回答No.5
ごめんなさい。

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

A88No8さんの認識が正しいようですね。
不勉強でした失礼いたしました。
お礼コメント
ご回答ありがとうございます。
結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。
投稿日時 - 2010-02-25 19:19:23
  • 同意数0(0-0)
  • ありがとう数0
6件中 1~5件目を表示
  • 回答数6
  • 気になる数0
  • ありがとう数2
  • ありがとう
  • なるほど、役に立ったなど
    感じた思いを「ありがとう」で
    伝えてください

関連するQ&A

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

別のキーワードで再検索する

あなたの悩みをみんなに解決してもらいましょう

  • 質問する
  • 知りたいこと、悩んでいることを
    投稿してみましょう
-PR-
-PR-
-PR-

特集


年賀状のマナーや作り方を学べるQ&A特集!

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ