PDA

Показать полную графическую версию : ВЫсвобождение памяти


Loki3D
23-04-2015, 16:07
Столкнулся с проблемой.
Скрипт по обработке большого количества файлов постепенно начинает работать медленнее и при этом выедает оперативную память процессом CMD.
Может кто сталкивался и знает как можно эту память высвободить или переписать алгоритм таким образом, чтобы память не выедалась.
Я предполагаю что всё из за "SETLOCAL ENABLEDELAYEDEXPANSION"

Условно скрипт шерстит определенный каталог на наличие файлов по определенной маске. Их название имеет фиксированную структуру из которой я выбираю Дату (она присутствует в названии файлов) Затем перекладываю все файлы в другой каталог со структурой подкаталогов Год\Мес\День


SETLOCAL ENABLEDELAYEDEXPANSION
for /R С:\ %%a in (*.txt) Do (
For /F "tokens=4 delims=_" %%b in ("%%~nxa") Do (
Set DDate=%%c
Set /A YYYY=!DDate:~0,4!
Set MM=!DDate:~4,2!
Set DD=!DDate:~-2!
)
xcopy "%%a" "D:111\!YYYY!\!MM!\!DD!\" /D /E /C /F /R /Y /J
)
ENDLOCAL

Iska
23-04-2015, 23:16
Loki3D, а с чего это у Вас каталог:
for /R С:\ %%a in (*.txt) Do ( »
обозначен кириллицей?! И откуда уверенность, что любые найденные на диске «c:» *.txt файлы обязательно будут соответствовать маске «*_*_*_ГГГГММДД*.txt»?!

Loki3D
24-04-2015, 15:29
Кусок скрипта дан для примера. У меня скрипт работает, всё Ок, и первые несколько тысяч файлов обрабатываются быстро, но потом скорость работы снижается. Это видно при просмотре лога.
У меня вопрос в выжирании оперативнй памяти.

Iska
24-04-2015, 15:40
Кусок скрипта »
Покажите весь Ваш пакетный файл.




© OSzone.net 2001-2012