2018年6月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
無料ブログはココログ

« 「名前を付けて保存」「ファイルを開く」でアプリが突然終了する障害の回避策 | トップページ | バッチファイルの二重起動を防止する。 »

2006年10月10日 (火)

バッチファイルで処理を逐次化するロックメカニズム。

ファイルのoutputオープンが一人しかできないことを利用します。

(
notepad.exe
) 0>%TEMP%\lockword
DEL %TEMP%\lockword

シリアライズしたい処理(複数可)を括弧の中に書きます。サンプルではメモ帳。
lockwordは、逐次化する処理ごとに一意になるようにします。

ロック失敗側は、以下のエラーになります。
「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」

レジストリなどに実行中フラグを書き込んだり、
ファイルやフォルダの存否で制御するような例が散見されますが、
エラー発生時に自動ではリセットされず、手動で解除するまで起動不可になります。

ファイルのオープンはプロセス終了で資源回収(リソースパージ)されるので確実です。

« 「名前を付けて保存」「ファイルを開く」でアプリが突然終了する障害の回避策 | トップページ | バッチファイルの二重起動を防止する。 »