1

Тема: JScript: очистка каталога от файлов и подпапок старше N дней

var arg = WScript.Arguments.Named;

if (arg.length != 2) {
  WScript.echo("Синтаксис: " + WScript.ScriptName + " /d:<путь> /n:<дни>");
  WScript.echo("  /d:<путь> - конечный каталог для обработки");
  WScript.echo("  /n:<дни>  - искать файлы старше положенного срока");
  WScript.Quit(1);
}

var fso = new ActiveXObject("Scripting.FileSystemObject"),
    dir = arg.Item("d"),
    num = arg.Item("n");

try {
  DeleteOlderThanX(dir, num);
}
catch (e) {
  WScript.echo(e.message + ".");
}

function DateDiff(fileName) {
  var day = new Date(fso.GetFile(fileName).DateCreated),
      now = new Date(), mil = 1 / (1000 * 60 * 60 * 24),
      res = (now - day) * mil;

  return(Math.floor(res));
}

function DeleteOlderThanX(dirName, dateExpire) {
  with (fso.GetFolder(dirName)) {
    var eFiles = new Enumerator(Files),
        eSubs = new Enumerator(Subfolders),
        itm;

    for (; !eFiles.atEnd(); eFiles.moveNext()) {
      itm = eFiles.item();

      if (DateDiff(itm) > dateExpire) {
        WScript.echo(itm.Path + ".....удалено");
        itm.Attributes = 0;
        itm.Delete();
      }
    }

    for (; !eSubs.atEnd(); eSubs.moveNext()) {
      itm = eSubs.item();

      DeleteOlderThanX(itm.Path, dateExpire);
      WScript.echo(itm.Path + ".....удалено");
      if (itm.Size == 0) {
        itm.Attributes = 0;
        itm.Delete();
      }
    }
  }
}