function OnInit(initData) { initData.name = 'UpdateEverythingFolderSize'; initData.version = '2023-05-02b'; initData.copyright = ''; initData.url = 'https://resource.dopus.com/t/everythingfoldersize-use-everything-to-calculate-folder-sizes/44281'; initData.desc = ''; initData.default_enable = true; initData.min_version = '12.0'; } var cmd = DOpus.Create().Command(); var stt = DOpus.Create().StringTools(); var fsu = DOpus.FSUtil(); var wsh = new ActiveXObject('WScript.Shell'); var exeES = fsu.Resolve('/programfiles\\Everything\\es.exe'); // Check "Index folder size" in Tools-Options-Indexes // var exeES = fsu.Resolve('/programfiles\\Everything 1.5a\\es.exe'); // Everything-1.5a.ini needs to contain this line: alpha_instance=0 if (!fsu.Exists(exeES)) { DOpus.Output('"' + exeES + '" not found!'); } function OnBeforeFolderChange(beforeFolderChangeData) { cmd.SetSourceTab(beforeFolderChangeData.tab); if (!cmd.IsSet('Set COLUMNSTOGGLE=scp:EverythingFolderSize/EverythingFolderSize')) return; if (!fsu.Exists(exeES)) return; var exportFile = fsu.GetTempFilePath(); var cmdLine = '"' + exeES + '"' + ' -size' + ' -no-header' + ' -export-csv "' + exportFile + '"' + ' -parent "' + beforeFolderChangeData.path + '"' + ' /ad'; // DOpus.Output(cmdLine); wsh.Run(cmdLine, 0, true); var vec = DOpus.Create().Vector(stt.Decode(fsu.GetItem(exportFile).Open().Read(), 'utf8').split('\r\n')); var re = /(\d+),(.*)/; for (var e = new Enumerator(vec); !e.atEnd(); e.moveNext()) { var line = re.exec(e.item()); if (line == null) continue; if (line.length != 3) continue; var size = line[1]; var dirVar = 'EFS' + line[2]; DOpus.vars.Set(dirVar, size); } }