Kod dosyaları arayan dizindeki her dosyadan geçen ve bunları bir şekilde değiştiren bir toplu iş komut dosyası yazıyorum. Bu görevi bitirdikten sonra, 6,000 dosya ile büyük bir dizinde çalıştırmayı denedim. Komut dosyasında yaklaşık 40 dakika çöktü ve komut isteminden çok sayıda bellek hatası aldım, görev yöneticisine bakarken betiği çalıştırdığımda programımın bellek yineleme döngüsü başına 1MB hızında olduğunu gösterdi. Doğal olarak yanlış bir şey yaptığımı düşündüğümde, sorunu yalıtmak için yazdığım tüm kodları kestim. Ama sonra bir döngü dışında boş bir dosya ile kalmıştı ve sorun hala devam ediyordu! Aslında bunu aşağı trim mümkün olmuşturBellek için bellek sızıntısı döngüde mi?
@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
Ve sorun hala devam ediyorsa İşte
Söylediğim gibi oldukça büyük bir dizinde koştu budur.
Toplu iş için bellek sızıntısı var mı yoksa sadece yanlış bir şey mi yapıyorum?
ben test edilmiş ve sorun hala bu kadar çok geçici bir çözüm olarak bir cevap değil Service Pack 3.
Düğme itme komutundan hemen sonra gelen nokta nedir? Bu bana mantıklı gelmiyor. Bundan hiçbir şey başaramayacaksın (sadece 2 dizin arasında gidip geliyor). – steenhulthin
Gerçek kodumun ne yaptığını taklit ediyorum. Tam dosyada, itme ve pop arasında bir sürü şey var. – Maynza
tamam, sanırım, kodun gösterilmediği yerde eklemelisiniz. – steenhulthin