2022年5月
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 31        
無料ブログはココログ

« テキストファイルを使って連番を生成する。 | トップページ | FileExists()でワイルドカードが使えない。その代替方法 »

2008年2月 6日 (水)

VBSファイルの実行を逐次化する。

多重に実行されると困る場合は、ロックを取って、逐次化します。

Option Explicit
Dim fso
Dim Lock

Set fso=CreateObject("Scripting.FileSystemObject")
Sub TryLock
  On Error Resume Next
  Set Lock=fso.OpenTextFile(WScript.ScriptFullName&":Lock",8,True)
End Sub
Do
  TryLock
  If Err.Number=0 Then Exit Do
  WScript.Sleep 1000
Loop
WScript.Echo "Locked"

ファイルの追加書きオープンで排他ロックを取ります。
ただし、スクリプトファイルだと、起動できなくなるので、NTFSストリームにします。
もし、NTFSでない場合は、:Lockを.Lockに変えて、別ファイルにするとよいでしょう。

« テキストファイルを使って連番を生成する。 | トップページ | FileExists()でワイルドカードが使えない。その代替方法 »