• 締切済み

タスクスケジューラの複数タスクの排他について

タスクスケジューラで複数のバッチファイルを起動していますが、同時に動かしたくないので タスクの排他をしたいのですが、どうすればよいでしょうか?

みんなの回答

  • e_watt
  • ベストアンサー率71% (25/35)
回答No.2

No.1 です。 補足します。 タスクが中断されてロック用のディレクトリが残ると 困ったことになることにご注意ください。 (取りあえず(実行していない頃合いを見計らって)定期的に消すとか、  人力でチェックして消すなどのメンテが必要) そのへんもきちんとしたい場合は、CreateMutex()するアプリケーションを作って、 (コマンドライン引数でファイル名を与えた)バッチファイルを起動する、 などの手間をかける必要があるかと思います。

  • e_watt
  • ベストアンサー率71% (25/35)
回答No.1

mkdir で排他用のディレクトリを作るとそこそこうまく行きます。 (シビアにほぼ同時に複数実行すると失敗することもあるようです) setlocal set LockDir=R:\Q mkdir %LockDir% if errorlevel 1 goto BYE echo 私だけ REM ここで仕事する pause rmdir %LockDir% goto END :BYE echo 誰か居た pause :END endlocal

関連するQ&A