2

我有一个 bat 文件,我试图通过“-Dhttp.nonProxyHosts”向 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"

结果几乎相同,那么我该如何正确传递这个列表呢?

干杯西蒙

4

1 回答 1

2

我想问题不在于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!
于 2013-05-06T10:49:47.493 回答