y.bat
Değişkendeki değeri değiştirmekten kaçınamazsınız . Ortam değişkenleri sabit olarak tanımlanamaz, salt okunur veya yazmaya karşı korumalı olarak işaretlenemez. Çağrılan toplu iş dosyası değişkeni değiştirirse ve toplu iş dosyasını değiştiremezseniz, değişiklikten kaçınamazsınız.
Kaçınılabileceğiniz tek şey, değişkeni etkileyecek değişkenin yayılmasıdır. x.bat
x.bat
@echo off
set "abc=set from x.bat"
setlocal
call y.bat
endlocal
echo %abc%
y.bat
@echo off
set "abc=changed value"
setlocal
çevre alanının bir kopyasını oluşturur ve bu kopyayı aktif olarak ayarlayın. Tüm değişiklikler bu kopyada endlocal
, kopyayı atar ve bir önceki ortamı geri yükler.