【发布时间】:2016-09-23 13:23:06
【问题描述】:
我想创建一个批处理文件,用于检查用户环境的 MSOffice 安装类型(32 位或 64 位),然后复制特定于该环境的文件。我从这段代码开始,以获取版本
Echo off&SetLocal
Set "KEY="&Set "GUID="&Set "IOV="&Set "MWB=32"&Set "MOB=32"
Echo=%PROCESSOR_ARCHITECTURE% %PROCESSOR_ARCHITEW6432%|Find "64">Nul&&(
Set "KEY=\Wow6432Node"&Set "MWB=64")
Set "KEY=HKLM\Software%KEY%\Microsoft\Windows\CurrentVersion\Uninstall"
For /f "Delims=" %%a In ('Reg Query %KEY% /k /f "*-001B-*0FF1CE}"') Do (
If Not Defined GUID Set "GUID=%%~nxa")
If Not Defined GUID (Echo=Unable to find Office Product&GoTo :EndIt)
If %GUID:~20,1% Equ 1 Set "MOB=64"
If %GUID:~4,1% Equ 4 (Set IOV=10) Else (If %GUID:~4,1% Equ 2 (Set IOV=07) Else (
If %GUID:~4,1% Equ 5 (Set IOV=13) Else (Set IOV=??)))
Echo=&Echo= Office 20%IOV% %MOB%-bit Product installed on a %MWB%-bit OS
来自Batch file check office architecture version,但想进一步扩展它以便能够复制。 我在努力
If "MOB=32" copy /y "\\file(32-Bit).exe" c:\%USERPROFILE%\Desktop
Else copy /y "\\file(64-Bit).exe" c:\%USERPROFILE%\Desktop
Echo=&Echo= Copy Completed! Have A Nice Day!
但不断收到“此时不需要复制”,也尝试使用 xcopy 并得到相同的结果。这真的有助于在混合环境中进行部署,有什么想法吗?很确定语法是错误的=(
【问题讨论】:
-
If "MOB=32"应该是If %MOB%==32 -
阅读
IF命令的帮助。它将向您展示使用和IF ... ELSE命令的确切语法。 -
我知道code。很高兴发现它很有用!
-
@Compo 感谢代码!但它似乎不适用于 64 位安装。另外,我该如何调整它而不是寻找 MS Word 版本,而是寻找 Ms Access?
标签: windows batch-file cmd ms-office