windows cmd或批处理命令中不支持空格的解决办法
(1)加上引号,表示一个完整路径,这个在好多服务器批处理中常用到比如jboss, tomcat。
set JAVA_HOME=C:Program FilesJavajdk1.5.0_12
set EXE_JAVA="%JAVA_HOME%"binjava
%EXE_JAVA% -version
(2)转成短路径,这个我认为是最好的解决办法。
set JAVA_HOME=C:Program FilesJavajdk1.5.0_12
for %x in ("%JAVA_HOME%") do set JAVA_HOME=%~sx
set EXE_JAVA=%JAVA_HOME%binjava
%EXE_JAVA% -version
需要注意的是,在批处理文件比如 run.bat 中,上面的for语句的变量有两个%%号。
for %%x in ("%JAVA_HOME%") do set JAVA_HOME=%%~sx
(3)如果只是想得到固定带空格的短路径,有一个快捷方法,使用cmd定位到某个目录,输入 debug 启动x86虚模式调试,然后quit推出,那么cmd的路径就变成短路径了




