Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
 
var initFolder = "D:\\Downloads\\2019_11_29"
var regex = /-\d{4}\.pdf$/
 
var fso = new ActiveXObject("Scripting.FileSystemObject");
var filelist = {};
var duplist = {};
var oLog = fso.CreateTextFile("duplicates.log", true);
recurseFiles (initFolder);
for (dd in filelist) {
  if (filelist[dd].length>2) {
    for (i=filelist[dd].length-1; i>0; i--) {
      aTmp=[];
      if (filelist[dd][i]) for (j=i-1;j>=0;j--) {
        if (filelist[dd][j]) if (fso.GetFile(filelist[dd][i]).Size == fso.GetFile(filelist[dd][j]).Size) {
          aTmp.push(filelist[dd][j]);
          delete filelist[dd][j];
        }
      }
      if (aTmp.length > 0) {
        aTmp.push(filelist[dd][i]);
        addElem(duplist, dd, aTmp.sort().join('\t==\t'));
      }
    }
  }
}
for (dd in duplist) {
  oLog.WriteLine(dd + '\r\n\t' + duplist[dd].join('\r\n\t'));
}
 
function recurseFiles (vFolder) {
  var oBFolder = fso.GetFolder(vFolder);
  var eFiles = new Enumerator (oBFolder.Files);
  var eFolders = new Enumerator (oBFolder.SubFolders);
  for (;!eFiles.atEnd();eFiles.moveNext()) {
    var match = eFiles.item().Name.match(regex);
    if (match == null || match.length == 1) {
      addElem(filelist, "unknown", eFiles.item().Path);
    } else {
      for (var i=1; i < match.length; i++) {addElem(filelist, match[i],eFiles.item().Path);}  
    }
  }
  for (;!eFolders.atEnd();eFolders.moveNext()) {recurseFiles(eFolders.item().Path);}
}
 
function addElem (oObj, vName, vData) {
  if (oObj[vName]==null) oObj[vName]=[];
  oObj[vName].push(vData);
}
 
 

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 19:14 02-12-2019 | Исправлено: Alex_Piggy, 19:45 02-12-2019
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru