我有一个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"
结果几乎相同,那么我如何正确传递这个列表呢?
干杯 西蒙
答案 0 :(得分: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!