会議室の扉の開閉状態を監視~更新日時が最新以外のファイルを削除するVBS~
2023年08月31日
前回、「会議室の扉の開閉状態を監視するシステムを作った話」について書いた。
扉の開閉状態を表示したWEBページを常時表示して、
それをスクショでNASに保存したいけど、保存先に同じファイルがあると困るし、
公開フォルダに複数ファイル置いてあるとぱっと見で判断できずひと手間増える。
今回は、その対策として、
指定したフォルダの最新以外のファイルを消すVBScript(ソース①)を作ってみた。
さっそく検索かけてみるけど意外とHITせず。
フォルダ内のファイルループのソースを参考にループを2回まわす仕様で作成。
動作確認もOK。
たしかに最新のファイル以外はちゃんと消えてる。
が、
しばらく動かすと止まってる・・・。
どうやら、設定した通番がいっぱいになると止まる仕様っぽい。
「扉状態1.JPG」・・・「扉状態9.JPG」の後はファイルが作られないなんて。。。
ファイル名に番号をつけるのはタイムリミットが設定されてしまうので、
別の方法を採るしかないようだ。。。
次回へ続く
以下、ソース。
ソース① 指定したフォルダの最新以外のファイルを消す.VBS
on error resume next
'対象フォルダを取得
dim strFolder :strFolder = "C:\tmp\tmp2" '指定したフォルダ
Dim fso:Set fso = CreateObject("Scripting.FileSystemObject")
Dim myfolder : Set myfolder = fso.GetFolder(strFolder)
'対象フォルダ内の全ファイルを処理 最新の更新日時を取得
dim f, lastdate:lastdate=0
For Each f In myfolder.Files
if lastdate < f.DateLastModified then lastdate = f.DateLastModified
next
'対象フォルダ内の全ファイルを処理 最新以外を削除
For Each f In myfolder.Files
if lastdate <> f.DateLastModified then fso.DeleteFile (f)
next
'オブジェクト解放
Set myfolder = Nothing
Set fso = Nothing
PR
Comment