我想通过传递命令行参数来调用批处理文件(tomcat的startup.bat),例如 c:> startup.bat -Dsun.lang.ClassLoader.allowArraySyntax = true
但是“=”符号正在被替换为空格。 如果我把c:> startup.bat -D“sun.lang.ClassLoader.allowArraySyntax = true”,则表示未正确设置该值。
我使用的是Windows 7。
无论如何都要传递包含“=”的命令行参数?
谢谢, 希瓦
答案 0 :(得分:1)
除了将%1
更改为%1=%2
之外,您无法对批处理文件中的内部做很多事情,只有在您确切知道有多少参数时才有效传入,或者你知道他们将永远成对出现。 (我想你可以循环并将所有-Dxxx
参数与下一个参数组合在一起,并将那些参数放在没有前导-D
的情况下,但如果你有其他=
- 样式参数,它可以变得非常混乱。)
但您可以通过将参数放在引号中来在批处理文件中执行以下操作:
startup "-Dsun.lang.ClassLoader.allowArraySyntax=true"
答案 1 :(得分:0)
您可以将%*
用于所有参数。
在您的批次中
@echo off
javac %*
或者你可以引用你的完整参数
startup.bat "-Dsun.lang.ClassLoader.allowArraySyntax=true"
并且startup.bat看起来像(%~1删除%1的周围引号)
@echo off
javac %~1