命令提示符中的全局变量

时间:2013-03-13 02:25:28

标签: batch-file command dos

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

示例:

Test1.bat:

set testvar=C:\Windows
echo %testvar%

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

Test2.bat:

echo %testvar%

谢谢和问候!

4 个答案:

答案 0 :(得分:1)

永久设置系统环境变量。见here

适用于:Windows Server 2008,Windows Vista

对于Windows XP,请下载并安装Windows XP Service Pack 2 Support Tools

答案 1 :(得分:1)

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

答案 2 :(得分:1)

SETX /?
从提示符

- 观察更改仅适用于cmd.exe的FUTURE实例的关键点 - 不存在

答案 3 :(得分: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或设置系统变量。