Есть папка с логами
Нужно сварганить скрипт, который проверяет размер каждого файла логов, если он превышает 1мб то егу нужно заархивировать, но архивы имеют нумерацию (sync.log.1.zip), тоесть нужно создать архив со следующим номером....
Зарание спасибо за подсказки и помощь.
greg zakharov
30-10-2015, 11:57
Mad Max, когда задается вопрос относительно файловой системы, обычно принято приводить пример содержимого папки, имен файлов и дыр и пыр, словом, все то, что могло бы в значительной ере ускорить решение Вашей же проблемы\задачи (нужное пометить маркером). В данном же случае можно привести следующий пример:@set @zip=0 /*
@echo off
set @zip=
setlocal
set "i=0"
for %%i in (%*) do set /a "i+=1"
if "%i%" neq "2" (
echo:Usage: %~n0 ^<directory^> ^<max_size^>
goto:eof
)
cscript /nologo /e:jscript "%~f0" %*
endlocal
exit /b
*/
(function(dir, len) {
var e, i = 1, itm, zip, shl = new ActiveXObject('Shell.Application');
with (new ActiveXObject('Scripting.FileSystemObject')) {
e = new Enumerator(GetFolder(GetAbsolutePathName(dir)).Files);
for (; !e.atEnd(); e.moveNext()) {
if (e.item().Size > len) {
itm = 'sync.' + GetBaseName(e.item()) + '.' + i + '.zip';
zip = CreateTextFile(itm, true);
zip.Write("PK\05\06" + new Array(19).join("\0"));
zip.Close();
shl.NameSpace(GetFile(itm).Path).CopyHere(e.item().Path);
WScript.Sleep(500);
WScript.StdOut.Write(itm + '......created\r');
i++;
}
}
}
}(
WScript.Arguments.length !== 2
? WScript.Quit(1)
: WScript.Arguments.Unnamed(0), WScript.Arguments.Unnamed(1)
));
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.