
Windows環境にてDOSコマンドでバッチファイルを作成して実行します。
バッチファイル内には複数のコマンドを記述しており、上から順番に
処理されて処理が完了してから次のコマンドを実行することを期待しています。
例) ping PC_NAME_A
ping PC_NAME_B
実際に実行してみて1つ目のコマンドが終了してから、2つ目の
コマンドが実行されているのは確認できているのですが、
この「1つ目のコマンドが終了してから次のコマンドを実行する」という
仕様を裏付ける記事などが見つけられません。(Microsoftのサイトなど)
どなたかご存知の方がいらっしゃいましたら教えてください。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
それはプログラムの書き方で決まります。
例えばping.exeは処理が終了するまで次の入力を受け付けませんが、Windowsのアクセサリにある電卓(calc.exe)は電卓のウィンドウが表示されればコマンドプロンプトは次の入力待ちになります。
プログラムを起動したときにWindowsの新規タスクとして実行した場合とcmd.exeの子プロセスととして実行したという違いです。
一般的なコマンドラインアプリケーションは
main() {
~色々な処理~
exit;
}
という書き方で、main()関数が終了するまでプロセスを占有します。
マルチタスク(或いはマルチセッション)の場合はセッションIDを新規取得しOSに処理を委託してからプロセスを終了します。
MSDNのセッション管理とかマルチセッション関連の項目を見ればわかるはずです。
※コマンドラインアプリケーションとWindowsアプリケーションの違いでもOK。
ご回答ありがとうございます。
結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。
No.4
- 回答日時:
こんにちは
#3の訂正です。
勘違いしてました。心配させてしまってごめんなさいm(__;m
参考URLは、マイクロソフトが技術情報を公開している microsoft technetのURLです。
そこに「バッチ ファイルを使用する」コンテンツがあって、実行順序に関して以下のように書いてありました。 一部引用します。
>コマンド プロンプトでそのファイル名を入力すると、Cmd.exe によってファイルに記述されている順番でコマンドが実行されます。
従って記述されている順番でコマンドは実行されます。
注意すべき点は、ここには「順番で実行されるが先に実行したタスクの終了を待つ」とは一切書かれていないです。
つまり、OSの制限にかからない限り、タスクの終了を待たずに次々に新たなタスクを実行しないとは云っていないことです(リソースが空いている間は、次々に実行できるからマルチタスクですよね)。
私が間違ったのは、実際に先に処理時間のかかるタスクを記述して、次に短い処理時間のタスクを書いたとき、あたかも短いタスクが先に終わるので順番を無視して先に走ったように感じてしまったことでしたm(__)m
参考URL:http://technet.microsoft.com/ja-jp/library/cc758 …
ご回答ありがとうございます。
結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。
No.2
- 回答日時:
そういうものです。
って言うんじゃだめなんですね。処理の順番が規定されていないと、順次処理が
必要なものはバッチで書けなくなるんですが…
一般的な説明でよければですが
Wikipediaのバッチ処理を参照してみてください。
ご要望に沿えるかどうかは疑問ですが。
参考URL:http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83% …
No.1
- 回答日時:
こんにちは
マルチタスクOSでは、実行順序は保証されません。
実行順序を確保するときは、start コマンドの引数としてコマンドを指定します。
start /wait ping PC_NAME_A
start /wait ping PC_NAME_B
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- UNIX・Linux UbuntuにROSをインストールしたい 1 2023/03/06 12:28
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- UNIX・Linux linuxサーバーのキャッシュをクリアするコマンドを実行したい。 5 2023/01/24 14:52
- Windows 10 バッチファイルでのエクスプローラー終了 1 2022/05/30 14:32
- その他(コンピューター・テクノロジー) (コマンドプロンプト)コマンドプロンプトのactiveについて 2 2022/07/16 17:21
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- オープンソース コマンドプロンプトのコードの実行方法を教えて欲しい 2 2022/11/26 20:45
- Excel(エクセル) パスワード付きExcelブックについて 4 2022/06/02 21:34
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
このQ&Aを見た人はこんなQ&Aも見ています
-
複数のbatファイルを自動実行したい
その他(プログラミング・Web制作)
-
バッチファイル内のコマンドプロンプトを1つずつ実行するにはどうしたらよいでしょうか?
IT・エンジニアリング
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
-
4
runas実行した時にきかれるパスワードを手入力以外で読み込ませたい
その他(プログラミング・Web制作)
-
5
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
6
batファイルで、call使っても戻ってこない
iOS
-
7
Windows10のタスクスケジューラの仕様
Windows 10
-
8
バッチファイルで昨日の日付を取得
その他(プログラミング・Web制作)
-
9
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
10
バッチファイル、順番を指定して複数のプログラムを起動。
その他(プログラミング・Web制作)
-
11
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
12
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
13
Batch: フォルダ内の特定のファイル以外を全て削除
その他(プログラミング・Web制作)
-
14
バッチファイルでサーバーのファイルをクライアントへコピーしたい
その他(コンピューター・テクノロジー)
-
15
バッチファイルで変数の中身をファイル出力したい
UNIX・Linux
-
16
コマンドプロンプトのエラーについて
その他(パソコン・周辺機器)
-
17
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
18
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
19
エラーの原因は?「この関数の定義が見つかりません」
C言語・C++・C#
-
20
DOSコマンドのループ内のTIMEコマンド
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SONYの音楽ソフト「x-アプリ」...
-
エクセルの表にヘンな枠が・・・
-
python IDLEで訂正、削除のやり...
-
pingは正常なのにtracerouteで...
-
Linux のシェルスクリプトの強...
-
信頼済みサイト登録をbatファイ...
-
起ち上げる時にチェックディス...
-
SPI非言語の問題 解説お願いします
-
solaris10のrloginやtelnetによ...
-
シャットダウンバッチがうまく...
-
ネットワークドライブ上のVBScript
-
ROBOCOPY cmdで正常に処理され...
-
スキャンディスクが出来ない
-
emacsでCtrl+zを押してサスペン...
-
常に全画面表示するには・・・
-
Openイベントを開始させないで...
-
windows10のごみ箱をrd /s /q C...
-
時間のマクロで最初はその時間...
-
shutdownコマンド実行の残り時...
-
ACCESSレポートをPDFに出力したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SONYの音楽ソフト「x-アプリ」...
-
エクセルの表にヘンな枠が・・・
-
pingは正常なのにtracerouteで...
-
Linux のシェルスクリプトの強...
-
シャットダウンバッチがうまく...
-
windows10のごみ箱をrd /s /q C...
-
SPI非言語の問題 解説お願いします
-
バッチファイル内の各コマンド...
-
信頼済みサイト登録をbatファイ...
-
最初の一度しか実行されないロ...
-
python IDLEで訂正、削除のやり...
-
emacsでCtrl+zを押してサスペン...
-
時間のマクロで最初はその時間...
-
Openイベントを開始させないで...
-
後先ってやっぱり考えて行動し...
-
sudoで実行したコマンドの実行...
-
ROBOCOPY cmdで正常に処理され...
-
ACCESSレポートをPDFに出力したい
-
PowerShellのスクリプト実行に...
-
LD_LIBRARY_PATHって?
おすすめ情報