Передача переменных среды по ссылке из одного пакетного файла в другой - PullRequest
0 голосов
/ 22 марта 2019

Я нахожусь в такой ситуации, когда у меня есть один пакетный файл, который создает группу переменных, а затем запускает (с 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
...