如何将命令行参数发送到包含“=”的批处理文件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项删除)