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

例) ping PC_NAME_A
   ping PC_NAME_B

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

このQ&Aに関連する最新のQ&A

A 回答 (6件)

それはプログラムの書き方で決まります。



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

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

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

MSDNのセッション管理とかマルチセッション関連の項目を見ればわかるはずです。
※コマンドラインアプリケーションとWindowsアプリケーションの違いでもOK。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。

お礼日時:2010/02/25 19:18

ごめんなさい。



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

A88No8さんの認識が正しいようですね。
不勉強でした失礼いたしました。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。

お礼日時:2010/02/25 19:19

こんにちは


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

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

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

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

参考URL:http://technet.microsoft.com/ja-jp/library/cc758 …(WS.10).aspx
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
結局、これだという情報に辿り着けませんでしたがstart /waitコマンドにて処理完了を制御することで一応落ち着きました。
いろいろとバッチを作ってみましたが、先に実行している処理が完了してから次の処理が呼ばれているようです。

お礼日時:2010/02/25 19:19

こんにちは


#1の訂正です。
>マルチタスクOSでは、実行順序は保証されません。
Windows 95以降のWindowsの BATコマンドでは書かれた実行順序は保証されません。

この回答への補足

回答ありがとうございます。
順序が保障される、されないのどちらの場合でも裏付けとなる情報が
欲しいのです・・・
実行順序が保障されなければそれはそれでA88No8さんのおっしゃる通り
start /wait で対応になるのかとは思っています。

補足日時:2010/02/24 16:16
    • good
    • 0

そういうものです。

って言うんじゃだめなんですね。
処理の順番が規定されていないと、順次処理が
必要なものはバッチで書けなくなるんですが…

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

ご要望に沿えるかどうかは疑問ですが。

参考URL:http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83% …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
改めて勉強になりました。

お礼日時:2010/02/24 16:20

こんにちは


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

start /wait ping PC_NAME_A
start /wait ping PC_NAME_B
    • good
    • 1

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q国保から社保への変更について 書類の印鑑

変更の書類に、印がなくて大丈夫なのでしょうか。

今まで国保でしたが、1月から社保に変わり、
先日、新しい保険証が届いたので、本日区役所に変更の手続きをしに行きました。

行く前に何が必要か電話で確認したところ、
“今までの国保の保険証”“新しい社保の保険証”“印鑑”と教えて頂きました。

区役所では順番を待っている間に、変更の書類を書いたのですが、順番で呼ばれた時にまだ印を押してなかったので、窓口で座ってから押そうと思い、窓口に行きました。

書類等を渡し、処理や説明をされ、あっさりと終わりとなったので、『印鑑は?』と聞きましたが、『印鑑は大丈夫です』と言われ終わりました。

印の欄があるのに印を押さないで大丈夫なんて事はあるのでしょうか。

事前に確認した際には印鑑と言われましたし、ホームページでも確認してみると、印鑑もとなっていました。

役所の方が大丈夫と言うので、大丈夫なのかとも思いますが、保険証の手続きですし、
ちゃんと処理されてないのは困るので、
とても気になるのと、不安なので質問致しました。

拙い文ですみません。
どうぞ宜しくお願い致します。

変更の書類に、印がなくて大丈夫なのでしょうか。

今まで国保でしたが、1月から社保に変わり、
先日、新しい保険証が届いたので、本日区役所に変更の手続きをしに行きました。

行く前に何が必要か電話で確認したところ、
“今までの国保の保険証”“新しい社保の保険証”“印鑑”と教えて頂きました。

区役所では順番を待っている間に、変更の書類を書いたのですが、順番で呼ばれた時にまだ印を押してなかったので、窓口で座ってから押そうと思い、窓口に行きました。

書類等を渡し、処理や説明をされ、あ...続きを読む

Aベストアンサー

自署の場合は押印不要というのは、結構あるかと思います。

不安なら役所に確認してみたら如何でしょうか?

Qコマンドプロンプトでバッチファイルを実行とは

素人ですが、「コマンドプロンプトでバッチファイルを実行」というのはどうやってやるものですか。

#簡単なサンプルを教えていただきたいのですが。

Aベストアンサー

Windows用語のコマンドプロンプトとは
分類上はコマンドラインインターフェイス(CLI)で
他のOSでは、コンソールと呼ばれることが多い。
ターミナルといった呼び方をする場合もある。

総じて、キーボード入力のコマンドと
上へスクロールアウトしていく文字列で全てがまかなわれる。

正確には、コマンドプロンプトというのは
このコマンドラインインターフェイスにおいて
コマンドの入力を促すために表示されている文字列と記号を指します。
ほぼすべてのOSで普遍的にコマンドプロンプトはそれしか意味しません。

が、Windowsでは、用語の混乱がひどいので
MS-DOS互換コンソールのことをコマンドプロンプトと呼びます。
DOS窓とか、「コマンドラインで」とかいった表現も使います。

バッチファイルは、通常MS-DOSやWindowsにおいて
バッチ処理
(複数のコマンドをひとまとめにした処理)
を行うためのファイルで、拡張子はBATになっています。
中身は、単にコマンドが書き並べられています。

バッチファイルのアイコンをクリックしても起動できますが
バッチファイルでは、処理内容としてドライブや
ディレクトリー,ファイル等を明示的に指定することが多く
また、実行開始する場所からの相対指定が多用されます。

バッチファイルは想定されたディレクトリーで実行しなければ
誤動作したり、事故を起こす可能性も高いと思うべきです。
エラー処理に手間をかけるような事例であれば
最初からバッチファイルで用意したりしないでしょう。

絶対指定と相対指定というウェブにもある概念の理解と
カレントディレクトリーにかかわる位置感覚を身に着けることが
コマンドライン操作の鍵と言えます。

Windows用語のコマンドプロンプトとは
分類上はコマンドラインインターフェイス(CLI)で
他のOSでは、コンソールと呼ばれることが多い。
ターミナルといった呼び方をする場合もある。

総じて、キーボード入力のコマンドと
上へスクロールアウトしていく文字列で全てがまかなわれる。

正確には、コマンドプロンプトというのは
このコマンドラインインターフェイスにおいて
コマンドの入力を促すために表示されている文字列と記号を指します。
ほぼすべてのOSで普遍的にコマンドプロンプトはそれしか意...続きを読む

Q結婚後の諸々の手続きについて、ベストな順番は?

結婚後の諸々の手続きについて。
一日のスケジュール立てについてご助言お願いいたします。

先月末に婚姻届を提出し、結婚をしました。
結婚をしたことで姓が変わりました。
現在引っ越しに向けて家探しをしている最中です。

姓が変わったことにより、諸々の手続きを行う予定です。

・印鑑登録
・運転免許証更新
・銀行口座名義変更
・クレジットカード名義変更
・会社への通知

等々…。
普段平日は仕事をしておりますので、近々有給を1日取ってこれらの手続きを行う予定でいます。


諸々の手続きを行う際に印鑑を使用することが多いと思われますので、
最初に印鑑登録を行おうと思っていたのですが、印鑑登録には運転免許証などの身分証明が必要とのことでした。

ここで提示する身分証明書(ここでは運転免許証とさせていただきます)も姓が変更されている前提だと思いましたので、手続きを行う順番としては

1、住民票発行
2、住民票を使って運転免許証の氏名変更
 (ここで使用する印鑑は印鑑登録されていないものでOK?)
3、印鑑登録
4、銀行口座・クレジットカード名義変更 等

上記認識で問題ないでしょうか?

何をするにしても「新しい印鑑が必要」と記載されているのですが、
そもそも印鑑登録するにも身分証明が必要だったりと…
なんだかごちゃごちゃしてきてしまったので、質問させていただきました。

運転免許証の氏名変更には、印鑑登録されていない印鑑を使用してOKなのでしょうか?

よろしければご回答お願いいたします。

結婚後の諸々の手続きについて。
一日のスケジュール立てについてご助言お願いいたします。

先月末に婚姻届を提出し、結婚をしました。
結婚をしたことで姓が変わりました。
現在引っ越しに向けて家探しをしている最中です。

姓が変わったことにより、諸々の手続きを行う予定です。

・印鑑登録
・運転免許証更新
・銀行口座名義変更
・クレジットカード名義変更
・会社への通知

等々…。
普段平日は仕事をしておりますので、近々有給を1日取ってこれらの手続きを行う予定でいます。


諸々の手続きを行う際に印...続きを読む

Aベストアンサー

1、住民票発行
2、住民票を使って運転免許証の氏名変更
 (ここで使用する印鑑は印鑑登録されていないものでOK?)
3、印鑑登録
4、銀行口座・クレジットカード名義変更 等

でOKです。

>運転免許証の氏名変更には、
>印鑑登録されていない印鑑を使用してOKなのでしょうか?

住民票があるのでOK。

(銀行登録印と印鑑登録している印は別の可能性があります。)

旧銀行印と新銀行印を持っていきましょう。

旧銀行印がみつからない場合は旧銀行印の廃止届が必要
(銀行の窓口で言えばやってくれます。)
でもちょっと時間を取られてしまうかもしれません。


印鑑登録は住民票をとるときに必要になるくらいなので
私の中での優先順位は低いです。

Q起動時DRIVER_IRQL_NOT_LESS_OREQUAL(Smb_driver_sys)

先日ウインドウズ7から10にアップデートした時から起動時ブルーバックでこのメッセージが出るようになりました
対処法がわからず困っています。メッセージをなくす方法教えてください、よろしくお願いします。

Aベストアンサー

OSは違うかもしれませんが、同様のエラーメッセージに対して先日回答しています。
かなり残念な内容ですが、ご参考になれば。
https://oshiete.goo.ne.jp/qa/9067332.html

Q印鑑登録証明書の印鑑を紛失した時

今度一人暮らしをするために連帯保証人で親の実印と印鑑登録証明書が必要なのですが、印鑑登録証明書に登録してある印鑑を無くしてしまいました。
区役所に行けばいいのでしょうか?
どこかで印鑑を買ってそれで新たに印鑑登録できますか?
また印鑑登録が終わり新しい印鑑の印鑑登録証明書をもらうのにどのくらいの日数がかかりますか(最短で)?
よろしくお願いします。

Aベストアンサー

基本的に実印はどんなものでも構いません。(シャチハタはダメですが)
ただし、三文判だと悪用のおそれがあるので、実印向けのものの方がいいでしょう。
登録自体はすぐに済みますので、自治体にもよりますが最短で翌日、遅くても3日以内には発行可能だと思います。

印鑑が盗難で悪用されている危険もあるため、念のために親さんの資産の確認(土地の登記や銀行口座)をしたほうがいいでしょう。
だいたい3ヶ月以内の印鑑証明が有効と言うところが多いので、3ヶ月は気を抜かないでください。

Qroot権限の実行コマンドを通常ユーザーで実行

root権限に限らないのですが、他のユーザーの権限でしか実行できないコマンドを自分で実行する方法が知りたいのです。
と言っても、rootや他ユーザーのパスワードを知っているという前提です。

例えば、通常ユーザーで作業をしているときに、root権限で行う必要のあるコマンドを実行したいとします。
今は、suでログインしてから実行していますが、shellスクリプトで実行したいと思っています。

どういったshellスクリプトになりますでしょうか?

Aベストアンサー

> 今回やろうと思ってるのは、suでログインしてから、いくつかの操作を行いたいので

であれば、そのいくつかの操作をまとめてシェルスクリプトにして、
それを su の -c に渡せば良いですね。

例えば、rally というユーザで、シェルスクリプト名が do_rally.sh とします。
スクリプトに実行権限がついていなければ

% su - rally -c "sh do_rally.sh"

という感じ。実行権限がついていれば

% su - rally -c do_rally.sh

で良いです。

ただ、最低一回はパスワードの入力があるので、su を使っている限りは
それからは逃れられません。

# ちょっと遅くなったので、もう sudo を使っているかな?

Q印鑑証明書の発行

今度、車を購入することになりまして印鑑証明が必要になりました。そこで何点かお聞きしたいことがあります。

(1)以前、自分で印鑑登録をしたような記憶があるのですが定かではありません。こういった場合、再度登録してもよいものなのでしょうか?(どの印鑑で登録したかも覚えていない・・・)そんなわけでできれば、新しい印鑑で登録しようと思っているのですが。

(2)過去に印鑑登録をしていたとするなら、引越し前の役所でしたはずなのですが、今済んでる所の役所でも発行してもらえるものなのでしょうか。ちなみに住民票は移してあります。

(3)これも印鑑登録をしていたらの話なのですが、最寄りの役所のHPで印鑑証明書の発行の手順を調べていたところ、印鑑証明を発行するのに印鑑登録証が必要との事なのですが、手元には確実にありません。どうしたらよいでしょう。

よろしくおねがいします。

Aベストアンサー

本来印鑑証明とは、そこに住所を有する方の
印影はこんな形ですよ。
というのを証明する証明書です。
ですから、住所を管轄する自治体が変わる
転出・転入を行えば自動的に印鑑資格を
喪失します。
同じ自治体内で転居をした場合も
住所欄が書き換わっているはずです。
住所と印鑑証明は切っても切れない関係なのです。
今後のご参考までに・・・。

補足ですけど
No.4さんが仰る通り、その場で発行可能です。
その為には、必ずご自身が行くこと。
それと、No.3さんが仰るように、
車を購入されるのでしたら免許証は
お持ちですよね。
それと登録される印鑑。
必ず忘れずに持参してください。

Qkillコマンドの終了と強制終了の違いについて

私は、SUNのSolaris8を使っています。

現在動いているプロセスを、killコマンドを使って終了させる際に、
-9または-KILLオプションを付けると、強制終了を行いますよね。

そこで質問なのですが、そもそもプロセスの『終了』と『強制終了』の違いとは何ですか?

とっても初歩的な質問だとは思いますが、いまいち理解できません。
よろしくお願いします。

Aベストアンサー

いわゆる unix には、「シグナル」というイベント通知の仕組みがあります。

あるプロセスに対して、シグナルが送信されると、そのプロセスは、やっている
処理を中断して、シグナルハンドラという特別に割り当てられた処理を行います。

kill コマンドというのは、このシグナルの送信をするコマンドに他なりません。


シグナルは、番号でイベントを区別でき、何種類もあり、それぞれの番号毎に
意味が割り当てられています。

シグナルハンドラは、自分で作って登録することもできますが、その登録を行わない
ときには、それぞれのシグナルに「デフォルトの動作」が割り当てられています。

デフォルトの動作は、無視・コア・終了・停止の4種類あります。

シグナルの中で9(SIGKILL)だけは、ちょっと特別で、シグナルハンドラの登録が
無視されます。なので、このシグナルを送信することで、対象のプロセスを無条件に
終了させることが保証されています。

これを簡単に言うと「強制終了」ですね。

他にも、デフォルトの動作が「終了」シグナルがあります(例えば、1や2)。
こいつらも送信すると対象のプロセスは終了するのですが、シグナルハンドラを
登録することができるので、そのプロセスの作り方によっては終了しないことが
ありえます。


> そもそもプロセスの『終了』と『強制終了』の違いとは何ですか?

普通にプロセスが終了する場合、というのは exit システムコールを呼んだのと
同じなんですが、シグナルのデフォルトの動作での「終了」も exit システムコール
を呼ぶのと同じです。

なので、実は違いがありません。

kill -KILL は、「『終了』を無条件に例外無く行う」と考えて下さい。

いわゆる unix には、「シグナル」というイベント通知の仕組みがあります。

あるプロセスに対して、シグナルが送信されると、そのプロセスは、やっている
処理を中断して、シグナルハンドラという特別に割り当てられた処理を行います。

kill コマンドというのは、このシグナルの送信をするコマンドに他なりません。


シグナルは、番号でイベントを区別でき、何種類もあり、それぞれの番号毎に
意味が割り当てられています。

シグナルハンドラは、自分で作って登録することもできますが、その登録を...続きを読む

Q印鑑証明を破棄したら…??

私は1年前に車を購入したときに印鑑証明を登録しました。
妹も先日、車の購入手続きをしてきました。
そこで印鑑証明をもらってくるようにと言われたので、
今日、役所に行ったら、
(印鑑は別だけど)私とまったく同じ型の印鑑なので拒否されたそうです。
しかし、車購入に関わる手続きやローンの手続きを
すでにその印鑑で行っているので、
その印鑑の印鑑証明でないとダメだと車屋さんに言われたらしい。
妹に私の印鑑証明を破棄するように頼まれましたが、
車を売るときなどにその印鑑証明でないと面倒になったりしないかと不安です。
今のところ印鑑証明が必要になることもないし、
印鑑を作りなおしてもかまわないのですが、
印鑑証明を破棄することによって
何か問題が発生することはありますか?
よろしくお願いいたします。

Aベストアンサー

確かに、市町村ですでに印鑑登録がされているのと同一の印影の場合、登録は拒否されますね。
物理的に別の印鑑であっても、機械彫りだと同一(とみなされる)印影になることはよくあります。

この場合、どうしても妹さんがその印鑑を登録したい、という場合には質問者さんが現在の印鑑登録を廃止することになります。

そうした場合に、質問者さんが別の印鑑を新たに実印として登録すれば、全く不都合はありません。
将来的に実印を押印する文書を作成する必要が発生した場合には、新たな実印を押印し、押印した時点においてその印鑑が実印であることが印鑑登録証明書で確認できればいいのです。

それが過去に作成した文書に使用した実印と異なるものであっても全く構いません。

Qnamedとnamed-xferの動き方(?)について

上記のWEBを見ながら設定してて、実際にnamedとnamed-xferっていう2つのプログラムをLinuxの中で動かしてみたいんですけど、このnamedとnamed-xferがどんなプログラムでどんな風にどれくらいの時間の感覚で動いているのか全くわかりません。教えてください。

Aベストアンサー

まず,これらのソフトは『BIND』と呼ばれるDNSのソフトパッケージの一部です。

namedはDNSサーバ本体,そのものであり,常時動いています。

named-xferは,前述namedが使う補助的なプログラムです。
namedに呼ばれたときだけ,たまにうごきます。
環境によっては,一生動きません(呼ばれません)。
複数台のDNSサーバ間でDNS情報をやり取りする際(ゾーン転送)に使われるものなので,cwsk2001さんのように『ちょっとnamed動かしてみた』という環境では,named-xferが動くことはありませんよ。プライマリDNS,セカンダリDNSという言葉がありますよね。あれに関連して使われるものです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング