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
Скрипт по обработке большого количества файлов постепенно начинает работать медленнее и при этом выедает оперативную память процессом 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