是否可以有一个包含一些公共变量的批处理文件,然后将此脚本包含在其他脚本中,以便在那里可以看到变量?
对此的常用方法是什么?
简单地说,在需要查看“共享”值的脚本中
CALL yourbatchthatsetsthecommonvariables.bat
但是对这些变量的更改将被隔离到特定CMD
实例 - 它们不会在实例之间进行通信。
并且由此为任何实例返回的值COMMON.BAT
将是与当前实例相关的值。
所以:假设你有COMMON.BAT
set mytime=%time%
set myval=abc123
然后实例 1... 或实例 2
...
call COMMON.BAT
...
将设置myval
为每个调用的abc123
时间mytime
COMMON.BAT
试试这个(在第一个脚本中):
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
到文本文件中。第二个脚本的代码没有改变。
当然,这也很常见。
假设您的变量在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