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

问题描述:

我想通过传递类似的命令行参数来调用批处理文件(tomcat的startup.bat):> startup.bat -Dsun.lang。 ClassLoader.allowArraySyntax = true如何将命令行参数发送到包含“=”的批处理文件char

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

我使用Windows 7

反正是有传递包含“=”命令行参数?

感谢, 西瓦

你不能做这种事,批处理文件,除了改变%1%1=%2,这只有当你知道你传递到底有多少参数在工作,或你知道他们总是会成对的。 (我想你可以循环,并放在一起所有-Dxxx参数的下一个参数,并把那些没有领先-D,但是如果你有其他=风格的参数,它可能带来麻烦。)

,但你可以做一些的批处理文件,把你的参数报价:

startup "-Dsun.lang.ClassLoader.allowArraySyntax=true" 

可以使用%*所有参数。

在批处理

@echo off 
javac %* 

或者你可以enquote您完整的参数 startup.bat "-Dsun.lang.ClassLoader.allowArraySyntax=true"

而且的startup.bat看起来像

@echo off 
javac %~1 
(周边%1引号%〜1项删除)