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

2006年10月10日 (火)

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

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

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

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

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

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

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

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