日付でファイルを削除するbatファイルの作り方

  • ガイド ( How to )
  • 閲覧数:506
  • ありがとう数:0

はじめに

Photo by ねこネコ猫NEKO
batファイルを作成した事がなくて、作り方がわからない方へ。

STEP1そもそも質問がわからないあなたへ。

例えば、D:\testと言うディレクトリに毎日、あるログファイルが 作成されてどんどん増えていくとします。 それでは、困るので、1ヶ月(30日)、もしくは1週間(7日)以上 経っているファイルは、削除したいですよね。

STEP2

バッチファイルでは無理のようでしたので JScript で書いてみました。このスクリプトファイルと同じフォルダにある 7 日以上経過した拡張子 log のファイルを削除します。必要でしたら、経過日数や削除するファイルの拡張子は適当に書き換えてください。  また、タスクとして登録する際は wscript x:\xxx\dellog.js のように wscript の引数にスクリプトファイル名をフルパスで指定してください。  一応動作確認はしましたが、なにしろファイルを削除する訳ですから十分ご注意を。ログファイルが収められたフォルダを丸ごとコピーして、事前にそちらで動作テストすることをおすすめします。 //--- dellog.js --- fso = new ActiveXObject("Scripting.FileSystemObject"); curdir = fso.GetParentFolderName(WScript.ScriptFullName); folder = fso.GetFolder(curdir); files = new Enumerator(folder.files); curdate = Date.parse(new Date()) / 86400000; // 86400000ms = 1000ms * 60s * 60m * 24h = 1day for (; ! files.atEnd(); files.moveNext()) { filedate = Date.parse(files.item().DateLastModified) / 86400000; if (((curdate - filedate) >= 7) && (fso.GetExtensionName(files.item()) == "log")) fso.DeleteFile(files.item()); } //--- end ---  

STEP3

万が一Windows 98 をお使いなら WindowsScript (wscript.exe, jscript.dll) はインストールされているはずですが、もし無ければこちらでどうぞ。JScript や VBScript のリファレンスも手に入ります。

http://www.microsoft.com/japan/developer/scripting/

まとめ

以上、ご参考まで。

関連するタグ

特集


感謝指数をマイページで確認!

ピックアップ

ページ先頭へ