2013-03-16 98 views

回答

1

很簡單,因爲需要看到「共享」的價值觀

CALL yourbatchthatsetsthecommonvariables.bat 

改變這些變量將被隔離到特定CMD實例的腳本中 - 他們不會實例之間進行通信。

AND這個COMMON.BAT返回的任何實例的值都是那些與當前實例相關的值。

所以:假設你有COMMON.BAT

set mytime=%time% 
set myval=abc123 

則實例1 ...或實例2

... 
call COMMON.BAT 
... 

將設置myvalabc123mytime到每個調用的時候COMMON.BAT

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

當然,這也很常見。

比方說,你的變量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