У меня есть следующий код:Windows, партия: переменная теряется после запуска еще один пакетный файл
@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set FILENAME=testfilename
for /L %%n in (1,0,10) do (
echo name-before: !FILENAME!
another-batch-file
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@echo off
echo name-after: !FILENAME!
)
@echo on
ENDLOCAL
При запуске следующее вторит консоль:
name-before:testfilename
name-after:!FILENAME!
Переменная FILENAME
в настоящее время установите на «testfilename» и правильно передается на терминал. Тем не менее, после выполнения еще одного-пакетного файла FILENAME
не может быть разрешен, и «FILENAME» вместо «testfilename» отражается. Я посмотрел в пакетном файле, который вызывается, но не может видеть какой-либо очевидный код или настройки.
Интересно, есть ли очевидная проблема. Thanks
Проверьте синтаксис 'for/L'; вы намеревались написать бесконечный цикл? –