-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のバッチ処理を参照してみてください。 ご要望に沿えるかどうかは疑問ですが。 ...続きを読む
    そういうものです。って言うんじゃだめなんですね。
    処理の順番が規定されていないと、順次処理が
    必要なものはバッチで書けなくなるんですが…

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

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

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

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

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

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

    A88No8さんの認識が正しいようですね。
    不勉強でした失礼いたしました。
    お礼コメント
    ご回答ありがとうございます。
    結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
    いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。
    投稿日時 - 2010-02-25 19:19:23
    • ありがとう数0
    • 2010-02-24 20:54:07
    • 回答No.6
    それはプログラムの書き方で決まります。 例えばping.exeは処理が終了するまで次の入力を受け付けませんが、Windowsのアクセサリにある電卓(calc.exe)は電卓のウィンドウが表示されればコマンドプロンプトは次の入力待ちになります。 プログラムを起動したときにWindowsの新規タスクとして実行した場合とcmd.exeの子プロセスととして実行したという違いです。 一般的なコマンドラインアプ ...続きを読む
    それはプログラムの書き方で決まります。

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

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

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

    MSDNのセッション管理とかマルチセッション関連の項目を見ればわかるはずです。
    ※コマンドラインアプリケーションとWindowsアプリケーションの違いでもOK。
    お礼コメント
    ご回答ありがとうございます。
    結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
    いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。
    投稿日時 - 2010-02-25 19:18:40
    • ありがとう数0
    • 回答数6
    • 気になる数0
    • ありがとう数2
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 知りたいこと、悩んでいることを
      投稿してみましょう
    あなたが体験したトラブルや解決方法を共有しませんか?
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

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

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

    特集


    成功のポイントとは?M&Aで経営の不安を解決!

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ