批处理文件'%'在设置java属性时添加了额外的空间

Uma*_*lid 0 java windows batch-file

我正在使用命令行运行java应用程序,因为我必须使用"-D"标志注入一些系统级属性.该属性作为参数传递给批处理文件,我设置它并像这样运行jar文件.

java -Dservice.url="http://localhost:%port%/someservice" -jar program.jar
Run Code Online (Sandbox Code Playgroud)

问题是%port%最终会增加额外空间并导致问题.在应用程序内打印属性后,我发现它被设置为这样.

service.url = http:// localhost:8080/someservice

理想情况下它应该是这样的

service.url = http:// localhost:8080/someservice

我试过删除引号,添加引号,许多解决方案,但他们没有工作.

Ger*_*ard 5

始终将变量包装在双引号中,包括变量名,以确保没有空格蠕变:

set "port=8080"
Run Code Online (Sandbox Code Playgroud)