2024年3月22日金曜日

古いファイルを消すすくリプト(Windows , vbs)

概要

Windows環境でバックアップを掃除するツール
バッチファイルとvbsの組み合わせでTask起動して使う想定です

使い方

CSCRIPT LogDelete.vbs D:\Folder days > backupexec.log
CSCRIPT LogDelete.vbs D:\Folder1\ 30 > bkfiledl.log
CSCRIPT LogDelete.vbs D:\Folder2\ 60 >> bkfiledl.log

コード

Option Explicit

'CScript myname.vbs %1 %2 %1=フォルダ , %2=日数

    Dim DeleteLogPath    ' 削除基準フォルダ
    Dim DelDayCount      ' 削除する判断を行う日数
    
    Dim fso              ' FileSystemObjects
    Dim oTargetFolder    ' Folder Objects
    Dim oFile            ' File Objects
    'dim objRE

    'Set objRE = CreateObject("VBScript.RegExp")
    
    DeleteLogPath = Wscript.Arguments.Item(0)        ' 引数としてフォルダを受け取る。ない場合には例外
    DelDayCount   = Wscript.Arguments.Item(1)        ' 引数として、削除する過去日数を受け取る。ない場合には例外
    'objRE.Pattern = "^" & Wscript.Arguments.Item(2) & "$"

    'Object Create
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oTargetFolder = fso.GetFolder(DeleteLogPath)
    
    WSCript.Echo (Now & " >> 指定された日以前のファイルを削除する ")
    WScript.Echo ("処理対象ディレクトリ >> " & DeleteLogPath)

    'File Delete
    For Each oFile In oTargetFolder.Files
    	'If objRE.Test(oFile.Name) Then
	        If DateAdd("d",DelDayCount,oFile.DateLastModified) < Now Then
	            Wscript.Echo (oFile.Name & " **** " & oFile.DateLastModified)
	            oFile.Delete
	        End If
        'End If
    Next