如何使用批处理脚本在自定义path上安装java运行时/ jre?

我试图创build一个bat文件进行无人参与安装sccm。 我从http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html下载了jre-7u55-windows-i586.exe(jre-7u55-windows-i586用于我们正在运行的遗留应用程序)

并按照https://www.java.com/en/download/help/silent_install.xml进入

“%〜dp0 jre-7u55-windows-i586.exe ”/ s / v“AgreeToLicense = YES INSTALLDIR = C:\ Program Files \ test \ test1 \ Java \ jre1.7.0.55 IEXPLORER = 1 MOZILLA = 1 REBOOT = SUPRESS JAVAUPDATE = 0 SYSTRAY = 0“

以上脚本只有在安装目录不是C:\ Program Files \

例如,它会工作,如果

INSTALLDIR=**C:\test\**test1\Java\jre1.7.0.55 

..

但是我想要INSTALLDIR

 C:\Program Files\test\test1\Java\jre1.7.0.55 

我尝试添加以下内容

INSTALLDIR="C:\Program Files\test\test1\Java\jre1.7.0.55" —不工作

INSTALLDIR='C:\Program Files\test\test1\Java\jre1.7.0.55' —不工作

/INSTALLDIR=C:\Program Files\test\test1\Java\jre1.7.0.55 —不工作

"INSTALLDIR=C:\Program Files\test\test1\Java\jre1.7.0.55" —不工作

所有的时间我得到这个..(听起来相当具有误导性的消息)

在这里输入图像说明

我不明白为什么我不能安装在C:\ Program Files文件\testing\testing1 \ Java \ jre1.7.0.55 ..什么我在这里失踪? C:\ Program Files \ test \ test1 \ Java \ jre1.7.0.55有什么问题。 请帮助

(我有我的帐户pipe理员权限)

您可以从完整path中获取短名称以克服您的问题中提到的限制。

 REM Insert full path to executable here as a literal string or environment Call :s_Install_Short "C:\Program Files\test\test1\Java\jre1.7.0.55" Goto :EOF :s_Install_Short REM Block attempts to pass no parameter If "%~1" EQU "" Goto :EOF REM %~s1 contains the path in the first parameter as a shortened string "%~dp0jre-7u55-windows-i586.exe" /s /v"AgreeToLicense=YES INSTALLDIR=%~s1 IEXPLORER=1 MOZILLA=1 REBOOT=SUPRESS JAVAUPDATE=0 SYSTRAY=0" Goto :EOF 

使用%~s1 C:\Program Files\test\test1\Java\jre1.7.0.55将把C:\Program Files\test\test1\Java\jre1.7.0.55变成类似于C:\PROGRA~1\test\test1\Java\jre1.7.0.55