2013-05-06 55 views
2

我有一個bat文件,我試圖通過「-Dhttp.nonProxyHosts」將非代理主機列表傳遞給JVM。該文件已經包含的參數列表,如果我嘗試只加有問題的一個是這樣的:正確轉義.bat文件中的JVM參數列表

set "JAVA_OPTS=-Xms64M -Xmx1024M -XX:MaxPermSize=256M" 
... 
set "JAVA_OPTS=%JAVA_OPTS% -Dhttp.nonProxyHosts=*.company.com|localhost|127.0.0.1" 

的Windows告訴我「命令的‘localhost’未找到」。

如果我試圖逃離它像

set "JAVA_OPTS=%JAVA_OPTS% -Dhttp.nonProxyHosts=*.company.com^|localhost^|127.0.0.1" 

結果是幾乎相同的,那麼,如何正確地傳遞這個名單?

乾杯 西蒙

回答

1

我想這個問題是不是SET,這是以後當你使用JAVA_OPTS變量。

最好的方法是在這裏使用延遲擴展,因爲它根本無視特殊字符。

setlocal EnableDelayedExpansion 
set "JAVA_OPTS=-Xms64M -Xmx1024M -XX:MaxPermSize=256M" 
set "JAVA_OPTS=%JAVA_OPTS% -Dhttp.nonProxyHosts=*.company.com|localhost|127.0.0.1" 

java.exe !JAVA_OPTS! 
+0

太棒了,那就是訣竅。 – schnesim 2013-05-06 14:50:09