多个批处理脚本的共享配置

时间:2013-03-16 16:35:01

标签: windows batch-file cmd

是否可以使用包含一些常见变量的批处理文件,然后在其他脚本中包含此脚本,以便变量在那里可见?

这是一种常见的方法吗?

3 个答案:

答案 0 :(得分:1)

试试这个(在第一个脚本中):

set>variables.txt

..并在第二个脚本中:

for /f "delims=" %%i in (variables.txt) do set %%i

编辑: 为一组变量(第一个文件)执行此操作:

::define some variables
set "_myvar1=value1"
set "_myvar2=value2"
set "_myvar3=value3"
::save them to a text file
set _myvar>variables.txt

这会将标题为_myvar的所有变量保存到文本文件中。第二个脚本的代码不会改变。

答案 1 :(得分:1)

简单地说,在需要查看“共享”值

的脚本中
CALL yourbatchthatsetsthecommonvariables.bat

但是这些变量的更改将被隔离到特定的CMD实例 - 它们不会在实例之间进行通信。

AND COMMON.BAT为任何实例返回的值将是与当前实例相关的值。

所以:假设你有COMMON.BAT

set mytime=%time%
set myval=abc123

然后是实例1 ...或实例2

...
call COMMON.BAT
...

会将myval设置为abc123,但将mytime设置为每次调用COMMON.BAT

的时间

答案 2 :(得分:1)

当然,这也很常见。

让我们在config.bat中说出你的变量:

set PATH=c:\opt\tools\jdk1.6;%PATH%
set CLASSPATH=c:\opt\projects\myproject\jars;%CLASSPATH%

然后你可以拥有例如start-dev.bat

call common.bat
javaw -cp %CLASSPATH% -Denv=dev

start-prod.bat

call common.bat
javaw -cp %CLASSPATH% -Denv=prod