Я пишу пакетный скрипт, который просматривает каждый файл в каталоге, ищет файлы кода и каким-то образом модифицирует их.После того, как я выполнил эту задачу, я попытался запустить ее в большом каталоге, содержащем около 6000 файлов.Около 40 минут в сценарии произошел сбой, и я получил много ошибок нехватки памяти из командной строки. Запуск сценария, глядя на диспетчер задач, показал, что моя программа потребляет память со скоростью примерно 1 МБ на одну итерацию цикла.Естественно думая, что я сделал что-то не так, я вырезал весь код, который я написал, чтобы изолировать проблему.Но затем я остался с пустым файлом, за исключением цикла for, и проблема все еще сохранялась!
Вот что я запустил в довольно большом каталоге, как я сказал:
@echo off
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set directory=%CD%
for /R "%directory%" %%a in (*.c *.cpp *.h *.idl) do (
set currentDir=%%~dpa
pushd !currentDir!
popd
)
Я действительно смог урезать его до:
@echo off
for /R "%CD%" %%a in (*) do echo
Ипроблема не устраненапроблема все еще присутствует в пакете обновления 3.