猫とコード

化学メーカーでweb開発している猫大好きエンジニアの備忘録です。

VBScriptバッチファイルで特定日数が経過したバックアップファイルを削除する

自分用の忘備録です。

やりたいこと

  • Windows Server2012で
  • 特定日数が経過したファイルを削除する (ファイル名に日付が含まれている状態)

実行方法

  • タスクスケジューラにバッチファイルを登録
  • バッチファイル内でVBScript(.vbs)を実行
  • VBScriptで特定日数を経過したファイルを探して削除する

バッチファイル(~.bat)

call "C:\Windows\SysWow64\wscript.exe" "C:\~~\backup_delete.vbs"
・・・

バッチファイルから呼び出すVBScript(~.vbs)

' 特定日数以前の日付を取得
' 180日より前のファイルを削除する
date_before = DateAdd("d",-180,DATE())
date_before = replace(date_before,"/","")

set fso = CreateObject("Scripting.FileSystemObject")
' フォルダパスを記載。
basepath = "C:\~~"
set folder = fso.getFolder(basepath)

' 以前のファイルを削除する
dim file
for each file in folder.files
    delete_file_path = basepath & "\" & file.name
    If CLng(fso.GetBaseName(delete_file_path)) < CLng(date_before) Then
        fso.DeleteFile delete_file_path
    End If
next