我正在尝试创建一个 bat 文件,以便使用 sccm 进行无人值守安装。我从以下位置下载了 jre-7u55-windows-i586.exe http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html (jre-7u55-windows-i586 用于我们正在运行的旧版应用程序)
并随后https://www.java.com/en/download/help/silent_install.xml 并且可以进入
"%~dp0jre-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\test\test1\Java\jre1.7.0.55 上。我这里缺少什么?C:\Program Files\test\test1\Java\jre1.7.0.55 有什么问题。请帮忙
(我确实拥有我的帐户的管理员权限)
答案1
您可以从完整路径中得出短名称来克服问题中提到的限制。
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:\PROGRA~1\test\test1\Java\jre1.7.0.55