@echo off setlocal REM Этот скрипт выполняет некоторые основные функции обслуживания DokuWiki REM Авторские права (C) 2012 Питер Мосманс REM Эта программа является свободным программным обеспечением: вы можете распространять ее и/или изменять REM в соответствии с условиями GNU General Public License, опубликованной REM Free Software Foundation, либо версии 3 Лицензии, либо REM (по вашему выбору) любой более поздней версии. REM Эта программа распространяется в надежде, что она будет полезна, REM но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии REM ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Подробнее см. в REM GNU General Public License. REM Вы должны были получить копию GNU General Public License REM вместе с этой программой. Если нет, см. . REM Пожалуйста, свяжитесь со службой поддержки по адресу go-forward.net для вопросов и/или отзывов REM Последнее изменение: 02-05-2012 (Питер Мосманс) set NAME=maintain_dokuwiki set VERSION=0.13 REM путь к файлу конфигурации dokuwiki, заключенный в двойные кавычки set DOKUWIKICONFIG="\full\filename\of\your\dokuwiki\conf\local.php" REM сохранить все файлы, которые моложе DAYSTOKEEP дней set DAYSTOKEEP=31 REM установите значение true, если вы хотите отобразить результаты и сделать паузу перед удалением любых файлов set SHOWRESULTSFIRST=true set FIND=c:\tools\find.exe set TEMPFILE=%TMP%\%NAME%.tmp REM посмотрите, все ли инструменты присутствуют for %%i in (%FIND%) do ( if not exist %%i ( echo sorry, could not find %%i - exiting echo you can obtain the free GNU tools from gnuwin32.sourceforge.net exit /b ) ) REM проверяем, можно ли прочитать файл конфигурации dokuwiki if not exist %DOKUWIKICONFIG% ( echo sorry, could not find DokuWiki config at %DOKUWIKICONFIG% - exiting exit /b ) REM извлекаем правильные пути из файла конфигурации for /f "usebackq delims=' tokens=2,4" %%i in (%DOKUWIKICONFIG%) do ( if /i "%%i"=="datadir" set DOCUMENTROOT=%%j if /i "%%i"=="olddir" set ATTICDIR=%%j if /i "%%i"=="cachedir" set CACHEDIR=%%j if /i "%%i"=="lockdir" set LOCKDIR=%%j ) if "%DOCUMENTROOT%" == "" ( echo sorry, could not find datadir variable in %DOKUWIKICONFIG%, exiting... exit /b ) REM использовать значения по умолчанию, если пути не указаны if /i "%ATTICDIR%" == "" set ATTICDIR=%DOCUMENTROOT%/attic if /i "%LOCKDIR%" == "" set LOCKDIR=%DOCUMENTROOT%/lock if /i "%CACHEDIR%" == "" set CACHEDIR=%DOCUMENTROOT%/cache REM удалить файлы старше DAYSTOKEEP дней из attic %FIND% "%ATTICDIR%" -type f -mtime +%DAYSTOKEEP% -print > %TEMPFILE% REM снять блокировки старше одного дня %FIND% "%LOCKDIR%" -name "*.lock" -type f -mtime +1 -print >> %TEMPFILE% REM удалить файлы кэша старше DAYSTOKEEP %FIND% "%CACHEDIR%" -type f -mtime +%DAYSTOKEEP% -print >> %TEMPFILE% REM показать результаты, если таковые имеются for /f "usebackq" %%i in (`%FIND% "%TMP%" -size +1 -name %NAME%.tmp`) do ( if /i "%SHOWRESULTSFIRST%"=="TRUE" ( echo files to be deleted: type %TEMPFILE% pause ) for /f "delims=#" %%i in (%TEMPFILE%) do del "%%i" ) REM очистить del /f /q %TEMPFILE% endlocal