通过引用将环境变量从一个传递到另一个批处理文件

时间:2019-03-22 09:37:59

标签: batch-file pass-by-reference

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

0 个答案:

没有答案