如何将命令行参数发送到包含“=”char的批处理文件

时间:2011-12-07 11:27:29

标签: batch-file

我想通过传递命令行参数来调用批处理文件(tomcat的startup.bat),例如 c:> startup.bat -Dsun.lang.ClassLoader.allowArraySyntax = true

但是“=”符号正在被替换为空格。 如果我把c:> startup.bat -D“sun.lang.ClassLoader.allowArraySyntax = true”,则表示未正确设置该值。

我使用的是Windows 7。

无论如何都要传递包含“=”的命令行参数?

谢谢, 希瓦

2 个答案:

答案 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
相关问题