none
タスクスケジューラで複数の操作を実行できない RRS feed

  • 質問

  • 毎日深夜にRobocopyを使って自動バックアップを取っています.同一のトリガーで複数のバッチファイルを走らせたいと思っています.タスクのプロパティを開き,操作タブの中で複数のバッチファイルを登録して,これらを順次実行させたいのですが,最初のバッチファイルを実行しただけで終了してしまいます.

    以前,Windows 8.1 の頃や,Windows 10 version 1511 の頃は問題なく実行できていました.この現象には Windows 10 version 1607 build 14393.10 にアップデート後に気づいたのですが,アップデートしたことが原因かどうかは不明です.ユーザ権限が関係しているかも不明です.

    確認方法,対処方法をご教示いただければ幸いです.

    2016年8月7日 2:15

回答

  • コメントしてくださった皆様,

    どうやら,タスクスケジューラは,複数の操作を登録した場合,これら全体が一つのコマンド・インタープリタの中で順次起動されていくもののようです(これは推測).従って,一つ一つの操作が「バッチファイルだった場合」は,最初のバッチファイルが終了した時点でコマンド・インタープリタ自体が終了してしまう,という仕様のようです.

    そこで,登録する操作は一つのバッチファイルのみにして,その中で,CALL コマンドを使って複数のバッチファイルを呼び出すようにしてみたら,今度はさすがにうまく行きました.

    これは,バッチファイルの中でバッチファイルを呼び出す場合に,CALL で呼び出さないと呼び出されたバッチファイルが終了した時点で全体が終了してしまう,という私のような不勉強者がよくハマる仕様によく似ています.

    本件はこれで一件落着ということにさせていただきたいと思います.皆様,どうもありがとうございました.

    2016年8月15日 6:11

すべての返信

  • Anniversary Update 後の Windows 10 を利用して、複数の BAT ファイルをタスクで実行してみましたが、私の環境では問題なく実行できました。単純に機能が無効化されているというようなことではなさそうです。

    簡単な BAT ファイルを作成して、テストしてみてはいかがでしょうか?

    2016年8月7日 7:31
  • Tomoaki Yoshizawa さま

    コメントありがとうございます.

    そうですか,それでは私も単純なバッチファイルで確かめてみたいと思います.

    2016年8月7日 10:30
  • 簡単なバッチファイルを作成し,test1.batとしました.

    @echo off
    setlocal
    echo "This is test1." > "C:\Local\Program Files (x86)\DoSync\test1.log"
    endlocal

    同様に,test2.batとtest3.batを作成し,これをタスクスケジューラの操作のリストに登録しました.

    タスクを実行させると,test1.batしか実行されません.ちなみに,ユーザーアカウントは管理者です.これって,どこがまずいのでしょうね?今までは実行できていたはずのものなのですが.私の環境の何が影響してるのでしょうね?不思議です.

    2016年8月7日 11:00
  • コメントしてくださった皆様,

    どうやら,タスクスケジューラは,複数の操作を登録した場合,これら全体が一つのコマンド・インタープリタの中で順次起動されていくもののようです(これは推測).従って,一つ一つの操作が「バッチファイルだった場合」は,最初のバッチファイルが終了した時点でコマンド・インタープリタ自体が終了してしまう,という仕様のようです.

    そこで,登録する操作は一つのバッチファイルのみにして,その中で,CALL コマンドを使って複数のバッチファイルを呼び出すようにしてみたら,今度はさすがにうまく行きました.

    これは,バッチファイルの中でバッチファイルを呼び出す場合に,CALL で呼び出さないと呼び出されたバッチファイルが終了した時点で全体が終了してしまう,という私のような不勉強者がよくハマる仕様によく似ています.

    本件はこれで一件落着ということにさせていただきたいと思います.皆様,どうもありがとうございました.

    2016年8月15日 6:11