Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Скрипт удаления файлов в папке старше N дней (http://forum.oszone.net/showthread.php?t=312831)

dobermann 17-03-2016 19:49 2617182

Скрипт удаления файлов в папке старше N дней
 
Подскажите, как создать исполняемый \ пакетный файл в среде Windows ХР чтобы он удалял все файлы старше N кол-ва дней от текущей даты в конкретной папке?

greg zakharov 18-03-2016 20:31 2617593

Если без рекурсии, то примерно так:
Код:

0</* :
@cscript /nologo /e:jscript "%~f0"&exit /b */0;
(function(directory, daysleft) {
  var fso = new ActiveXObject('Scripting.FileSystemObject');

  String.prototype.getExistance = function() {
    return Math.floor((
      new Date - new Date(fso.GetFile(this).DateCreated)
    ) * (1 / 86400000));
  }

  with (fso.GetFolder(directory)) {
    for (var e = new Enumerator(Files); !e.atEnd(); e.moveNext()) {
      var file = e.item();
      if (file.Path.getExistance() > daysleft) {
        WScript.echo(file.Path);
        file.Attributes = 0;
        file.Delete();
      }
    }
  }
}('X:\\myfolder', 14));

где X:\\myfolder меняете на путь до папки, вместо двух недель - 14 - указываете нужное количество дней.
Если в ХР установлен PowerShell, то:
Код:

ls myfolder | ? {!$_.PSIsContainer -and ((Get-Date)-$_.CreationTime).Days -gt 14} | % {ri -for $_.FullName}


Время: 03:51.

Время: 03:51.
© OSzone.net 2001-