Я нахожусь в такой ситуации, когда у меня есть один пакетный файл, который создает группу переменных, а затем запускает (с start /w "file.batch"
) другой пакетный файл, который использует и изменяет переменные из первого пакетного файла.
Теперь это работает нормально, пока второй файл не закроется сам и не вернется к первому файлу, потому что переменные, которые были изменены вторым файлом, не являются ссылками, а фактически копируют исходные переменные, что означает, что они больше не связаны к исходным переменным. Это делает второй сценарий практически бесполезным.
Я знаю, что call "file.batch"
будет запускать второй файл в той же среде, что решит проблему, но я хочу, чтобы второй файл запускался в отдельном окне, а call "file.batch"
- нет.
Вот краткая демонстрация проблемы:
Файл 1:
@echo off
set $var=0
echo before starting file 2: %$var%
start test02.bat
echo after starting file 2: %$var%
echo before calling file 2: %$var%
call test02.bat
echo after calling file 2: %$var%
pause&exit
Файл 2:
@echo off
echo inside file 2: %$var%
set $var=1
echo inside file 2: %$var%
exit /b 0
Выход:
before starting file 2: 0
inside file 2: 0
inside file 2: 1
after starting file 2: 0
before calling file 2: 0
inside file 2: 0
inside file 2: 1
after calling file 2: 1