如何使用批处理自动进行静默安装Teamcenter-赖良顺_第1页
如何使用批处理自动进行静默安装Teamcenter-赖良顺_第2页
如何使用批处理自动进行静默安装Teamcenter-赖良顺_第3页
如何使用批处理自动进行静默安装Teamcenter-赖良顺_第4页
如何使用批处理自动进行静默安装Teamcenter-赖良顺_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

UGITC Technical CenterBatch设置运行时环境并安装Teamcenter的逻辑部分讲解作者:赖良顺 审校:适用版本:wntx64在客户端安装Teamcenter时,我们需要查看Java运行时环境是否安装,设置Host解析,静默安装Teamcenter,判断安装是否成功,静默升级Teamcenter等等一系列操作,能否有一个Batch能够自动判断、提示、运行这些程序呢?单独使用Batch安装JDK或静默安装Teamcenter非常简单,如安装JDK的命令只需要一行start /WAIT 安装包路径 /s /INSTALLDIR=JDK路径 /INSTALLDIRPUBJRE=JRE路径即可;本文档会将关注点放在判断软件是否已安装、安装是否出错的语句上。如果系统启用了UAC使用Batch运行安装程序时,大部分软件在安装过程中会弹出UAC窗口进行提升权限(图1),但查询注册表或设置用户环境变量则会直接失败,因此我们在运行Batch时自动提升权限;图1提升用户权限的语句如下,如果已是管理员权限则跳至:st,不是则创建一个新的Shell并要求提升权限,然后再跳转至:st;rem 权限提升至管理员%1 %2ver|find 5.nul &goto :stecho.echo Run as administrator.mshta vbscript:createobject(shell.application).shellexecute(%s0,goto :st,runas,1)(window.close)&goto :eof:st设置临时变量silent.xml的位置、安装包位置等,提示注意事项并暂停等待用户继续(图2);使用echo.输出一个空行;set silent_file=C:UsersVarsaDesktopsilent.xmlecho 请确认已修改过Silent文件%silent_file%内信息,如installingUser必须修改为当前登录系统的用户名echo.pause图2读取变量,if exist判断文件夹是否存在,并做出相应提示;goto :eof跳至文件末尾(图3),eof(End Of File)是系统默认标记,不需要手动设置标记位置;echo 检查%installLoc_tc%是否存在.if exist %installLoc_tc%portal ( echo 目录%installLoc_tc%下已存在Portal文件夹,无法继续 echo 按任意键退出脚本. pausenul goto :eof) else ( echo 目录%installLoc_tc%已存在,但不包含Portal文件夹,请自行检查是否继续安装 pause)图3查询注册表获取Teamcenter安装路径(图4),REG QUERY执行注册表查询,HKLM是HKEY_LOCAL_MACHINE的简写,Teamcenter项下的版本号会因为安装版本产生变化,因此我们使用/s参数进行循环子项搜索,/v查找指定名称的数据值(图5);echo 检查Teamcenter注册表是否存在.for /f tokens=2* %a in (REG QUERY HKLMSOFTWARESiemensTeamcenter /s /v TC_ROOT) do ( echo 注册表中已存在Teamcenter安装信息,路径为%b if exist %b ( goto :tcexists ) else ( echo 该文件夹不存在,为注册表残留项 goto :install )图4图5for /f tokens=2* %a in将查询得到的值第二列给%a,剩余所有都赋值给%b(在Batch中要使用%a,而直接在cmd中运行则使用%a)(图6);图6检查JDK、JRE是否有环境变量(图7),set /a设置一个变量为数字表达式,可以用于逻辑运算;echo 检查Java环境变量是否存在.if defined JAVA_HOME ( echo JAVA_HOME已存在,值为%JAVA_HOME% set /a java_e=1)图7设置变量为数字逻辑运算结果,用于判断是否需要检测注册表值(图8);|为或逻辑,&为与逻辑,分隔表达式,作用与与逻辑相似(图9);支持的逻辑运算如图10;set /a jre=jre_e|jre64_eset /a java=jre_e|jre64_e|java_eif %java_e% equ 1 ( echo. echo 检查JDK注册表信息.图8图9图10当检测到已安装JDK时,提示用户选择是否继续执行(图11);set /p将用户输入内容赋值给变量,等号右边为显示内容;注意set /p应不处于任何循环、判断内,如if、for,这会使变量赋值失败(图12);if %java% neq 1 goto :ignoreset /p ignoreJava=忽略已存在的Java,继续安装新的JDK?y or any: if %ignoreJava% equ y ( goto :ignore) else if %ignoreJava% equ Y ( goto :ignore) else ( goto :eof)图11图12静默安装JDK和捆绑的JRE到指定目录,start /WAIT启动新进程来执行安装并等待新进程结束;echo %date% - %time%echo 开始安装JDK和JRE.start /WAIT %installPack_jdk% /s /INSTALLDIR=%installLoc_jdk% /INSTALLDIRPUBJRE=%installLoc_java%echo 安装JDK和JRE完成,开始注册用户环境变量.setx设置用户环境变量(图13);如果需要设置的是系统环境变量,可以用REG ADD向注册表内添加值,但需要重启系统才能生效且存在一定风险,因此非必要情况下尽量使用用户变量;setx JAVA_HOME %installLoc_jdk%echo 用户环境变量JAVA_HOME已设置为%installLoc_jdk%图13静默升级Teamcenter,判断返回值检测是否安装失败;使用errorlevel 1判断返回值是否大于等于1,结果为布尔值;% errorlevel%是返回值的具体数值;call %installLoc_tc%installtem.bat -p %installPack_tc_patch_wnt%if errorlevel 1 ( echo. echo 安装出错,请查看install文件夹内的log信息定位错误 echo 按任意键退出脚本. pausenul goto :eof)图14使用Batch进行安装运行时环境、添加环境变量、添加Host解析、安装Teamcenter并判断返回值,可以减少软件部署时需要人为判断环境的情况,提供部署效率。附录: Batch代码:echo offrem 权限提升至管理员%1 %2ver|find 5.nul &goto :stecho.echo Run as administrator.mshta vbscript:createobject(shell.application).shellexecute(%s0,goto :st,runas,1)(window.close)&goto :eof:strem 需要同步修改silent.xml内的installDir, sourceDir, installingUser, search path, newHomerem installingUser必须修改为当前登录系统的用户名,否则认为时非初装用户不允许安装set silent_file=C:UsersVarsaDesktopsilent.xmlecho 请确认已修改过Silent文件%silent_file%内信息,如installingUser必须修改为当前登录系统的用户名echo.pauseset installPack_jdk=vmware-hostShared FoldersInstaller-2RuntimeEnvjdk-7u80-windows-x64.exeset installPack_tc_wnt=vmware-hostShared FoldersInstaller-2TeamcenterTeamcenter.10.1Tc10.1.0_win64set installPack_tc_patch_int=vmware-hostShared FoldersInstaller-2TeamcenterTeamcenter.10.1.5.1Tc10.1.5.1_installset installPack_tc_patch_wnt=vmware-hostShared FoldersInstaller-2TeamcenterTeamcenter.10.1.5.1Tc10.1.5.1_wntx64wntx64set installLoc_java=C:appsJavajre7set installLoc_jdk=C:appsJavajdk7set installLoc_tc=D:SiemensTeamcenter10set host=192.168.80.20 PLMServerecho.echo 检查%installLoc_tc%是否存在.if exist %installLoc_tc%portal ( echo 目录%installLoc_tc%下已存在Portal文件夹,无法继续 echo 按任意键退出脚本. pausenul goto :eof) else ( echo 目录%installLoc_tc%已存在,但不包含Portal文件夹,请自行检查是否继续安装 pause)echo 检查Teamcenter注册表是否存在.for /f tokens=2* %a in (REG QUERY HKLMSOFTWARESiemensTeamcenter /s /v TC_ROOT) do ( echo 注册表中已存在Teamcenter安装信息,路径为%b if exist %b ( goto :tcexists ) else ( echo 该文件夹不存在,为注册表残留项 goto :install ):tcexistsecho 该文件夹真实存在,请注意:继续安装可能会照成环境变量、注册表混乱set /p install=忽略已存在的Teamcenter,继续安装?y or any: if %install% equ y ( goto :install) else if %install% = Y ( goto :install) else ( goto :eof):installrem 检测是否已安装Javaecho.echo 检查Java环境变量是否存在.if defined JAVA_HOME ( echo JAVA_HOME已存在,值为%JAVA_HOME% set /a java_e=1)if defined JRE_HOME ( echo JRE_HOME已存在,值为%JRE_HOME% set /a jre_e=1)if defined JRE64_HOME ( echo JRE64_HOME已存在,值为%JRE64_HOME% set /a jre64_e=1)set /a jre=jre_e|jre64_eset /a java=jre_e|jre64_e|java_eif %java_e% equ 1 ( echo. echo 检查JDK注册表信息. for /f tokens=2* %a in (REG QUERY HKEY_LOCAL_MACHINESOFTWAREJavaSoftJava Development Kit /v CurrentVersion) do ( if %b neq Kit ( echo 注册表指定当前JDK版本为%b set jdkvers=%b goto :regjdk ) ) :regjdk for /f tokens=2* %a in (REG QUERY HKEY_LOCAL_MACHINESOFTWAREJavaSoftJava Development Kit%jdkvers% /v JavaHome) do ( if %b neq Kit%jdkvers% ( echo 注册表指定注册JDK%jdkvers%的HOME路径为%b ) )if %jre% equ 1 ( echo. echo 检查JRE注册表信息. for /f tokens=2* %a in (REG QUERY HKEY_LOCAL_MACHINESOFTWAREJavaSoftJava Runtime Environment /v CurrentVersion) do ( if %b neq Environment ( echo 注册表指定当前JRE版本为%b set jrevers=%b goto :regjre ) ) :regjre for /f tokens=2* %a in (REG QUERY HKEY_LOCAL_MACHINESOFTWAREJavaSoftJava Runtime Environment%jrevers% /v JavaHome) do ( if %b neq Environment%jrevers% ( echo 注册表指定注册JRE%jrevers%的HOME路径为%b call %bbinjava -version ) )echo.if %java% neq 1 goto :ignoreset /p ignoreJava=忽略已存在的Java,继续安装新的JDK?y or any: if %ignoreJava% equ y ( goto :ignore) else if %ignoreJava% equ Y ( goto :ignore) else ( goto :eof):ignoreif not exist %installLoc_java% md %installLoc_java%if not exist %installLoc_jdk% md %installLoc_jdk%echo.echo %date% - %time%echo 开始安装JDK和JRE.start /WAIT %installPack_jdk% /s /INSTALLDIR=%installLoc_jdk% /INSTALLDIRPUBJRE=%installLoc_java%echo 安装JDK和JRE完成,开始注册用户环境变量.setx JAVA_HOME %installLoc_jdk%echo 用户环境变量JAVA_HOME已设置为%installLoc_jdk%setx JRE_HOME %installLoc_java%echo 用户环境变量JRE_HOME已设置为%installLoc_java%setx JRE64_HOME %installLoc_java%echo 用户环境变量JRE64_HOME已设置为%installLoc_java%setx PATH %installLoc_jdk%bin;%installLoc_jdk%lib;%PATH%echo 向PATH添加%installLoc_jdk%bin;%installLoc_jdk%libecho.echo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论