【问题标题】:Escape list of JVM arguments in .bat file correctly正确转义 .bat 文件中的 JVM 参数列表
【发布时间】:2013-04-30 01:36:58
【问题描述】:

我有一个 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"

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

干杯 西蒙

【问题讨论】:

    标签: file batch-file jvm arguments


    【解决方案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!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2011-09-22
      • 2014-11-21
      • 1970-01-01
      相关资源
      最近更新 更多