現在我正在使用兩個批處理文件,在此示例中將它們稱爲variables.cmd和main.cmd。 variable.cmd文件將用於外部化可能與多個其他批處理文件一起使用的一組變量。來自外部批處理文件的變量在主批處理文件中不起作用
現在,除了CLASSPATH之外,每個變量在main.cmd文件中都沒有問題。當回聲variables.cmd CLASSPATH中正確地創建中調用,但在main.cmd文件我得到以下結果迴盪時:
!CLASSPATH!;C:\ipp\deploy\lib\app\momex-webservice-client.jar;C:\ipp\deploy\resources
上發生了什麼任何想法,以及它如何能解決嗎?
這是main.cmd文件:
@echo off
call variables.cmd
echo %JAVA_HOME%
echo %DEPLOY%
echo %DEBUG%
echo %DEBUG_PORT%
echo %JAVA_OPTIONS%
echo %CLASSPATH%
這是variables.cmd文件:
@echo off
setlocal EnableDelayedExpansion
set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_30"
set DEPLOY=C:\ipp\deploy
set DEBUG=false
set DEBUG_PORT=15000
set JAVA_OPTIONS="
set JAVA_OPTIONS=%JAVA_OPTIONS% -Djava.endorsed.dirs=%DEPLOY%\lib\endorsed
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump="true"
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dconfiguration.properties=%DEPLOY%\resources\vendor.configuration.properties
if "%DEBUG%"=="true" (
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=15000,suspend=n,server=y
)
set CLASSPATH=%DEPLOY%
for %%i in (%DEPLOY%\*.jar) do (
set CLASSPATH=!CLASSPATH!;%%i
)
for %%i in (%DEPLOY%\lib\system\*.jar) do (
set CLASSPATH=!CLASSPATH!;%%i
)
for %%i in (%DEPLOY%\lib\app\*.jar) do (
set CLASSPATH=!CLASSPATH!;%%i
)
for %%i in (%DEPLOY%\tools\jaxws-ri\lib\*.jar) do (
set CLASSPATH=!CLASSPATH!;%%i
)
set CLASSPATH=%CLASSPATH%;%DEPLOY%\resources
我也試過了。很棒!謝謝您的幫助。 – Karl 2012-03-13 19:06:25