- 締切済み
タスクスケジューラの複数タスクの排他について
タスクスケジューラで複数のバッチファイルを起動していますが、同時に動かしたくないので タスクの排他をしたいのですが、どうすればよいでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- 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