在这种情况下,我有一个批处理文件,该批处理文件创建了一堆变量,然后(以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