2017年11月
      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    
無料ブログはココログ

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