1

是否可以有一个包含一些公共变量的批处理文件,然后将此脚本包含在其他脚本中,以便在那里可以看到变量?

对此的常用方法是什么?

4

3 回答 3

2

简单地说,在需要查看“共享”值的脚本中

CALL yourbatchthatsetsthecommonvariables.bat

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

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

所以:假设你有COMMON.BAT

set mytime=%time%
set myval=abc123

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

...
call COMMON.BAT
...

将设置myval为每个调用的abc123时间mytimeCOMMON.BAT

于 2013-03-16T17:27:05.580 回答
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到文本文件中。第二个脚本的代码没有改变。

于 2013-03-16T16:52:57.240 回答
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
于 2013-03-16T18:52:26.867 回答