6

如何在批处理脚本中声明全局变量?

例子:

测试1.bat:

set testvar=C:\Windows
echo %testvar%

现在我应该可以在其他批处理脚本(test2.bat)中使用这个 testvar

测试2.bat:

echo %testvar%

谢谢并恭祝安康!

4

4 回答 4

1

据我所知,在多个批处理脚本中使用一个变量的唯一方法是创建自定义系统环境变量。您可以在此处找到有关如何执行此操作的详细演练:全局环境变量

于 2013-03-13T02:31:55.063 回答
1

SETX /?

从提示 - 并观察更改仅适用于 cmd.exe 的未来实例的关键点 - 不存在

于 2013-03-13T02:36:34.000 回答
1

通过永久设置系统环境变量。见这里

适用于:Windows Server 2008、Windows Vista

对于 Windows XP,下载并安装Windows XP Service Pack 2 支持工具

于 2013-03-13T02:29:12.270 回答
0

如果 2 个批处理文件在同一个命令进程中运行,它将正常工作。

这是 test1.bat

set testvar="test123"
echo In test1.bat
echo %testvar%

这是 test2.bat

echo In test2.bat
echo %testvar%

这是运行 test1.bat 然后 test2.bat 的输出

C:\temp>test1.bat

C:\temp>set testvar="test123"

C:\temp>echo In test1.bat
In test1.bat

C:\temp>echo "test123"
"test123"

C:\temp>test2.bat

C:\temp>echo In test2.bat
In test2.bat

C:\temp>echo "test123"
"test123"

如果您从另一批次调用一个批次,这也适用(因为它是相同的过程)

将 test1.bat 更改为

set testvar="test123"
echo In test1.bat
echo %testvar%
call test2.bat

现在输出看起来像这样

C:\temp>test1.bat

C:\temp>set testvar="test123"

C:\temp>echo In test1.bat
In test1.bat

C:\temp>echo "test123"
"test123"

C:\temp>call test2.bat

C:\temp>echo In test2.bat
In test2.bat

C:\temp>echo "test123"
"test123"

如果您希望它可用于不同的命令进程,您需要查看 setx 或设置系统变量。

于 2013-03-13T02:32:01.223 回答