【问题标题】:Batch File to Copy based on Office Version根据 Office 版本复制的批处理文件
【发布时间】: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


【解决方案1】:
If %MOB%==32 (copy /y "\\file(32-Bit).exe" c:\%USERPROFILE%\Desktop
 ) Else (copy /y "\\file(64-Bit).exe" c:\%USERPROFILE%\Desktop)
  1. IF真条件目标的左括号前必须有一个分隔符
  2. 左括号必须与if 在同一物理行
  3. 在使用 'else' 子句的情况下,“true”块的结尾括号、分隔符和 else 关键字必须位于同一物理行
  4. 在使用“else”块的情况下,else 关键字、分隔符和“else”块的左括号必须位于同一物理行

if condition (
 something
) else (
 someotherthing
)

【讨论】:

  • 好吧@Magoo 经过一些测试后,我意识到它适用于 Office 安装为 32 位但它不适用于 64 位安装,或者它仍然复制 32 位文件.
  • 在这种情况下,mob 似乎被设置为 32,而不是 64。因为mob 在你的例程开始时被设置为“32”,并且唯一的地方如果%GUID:~20,1% Equ 1 可以更改为“64”,那么您正在提取的GUID 似乎表明64 位没有第21 个字符=1。注意第 21 条 - 计数从“字符 0”开始,用于批量子串。您需要检查 that 测试是否有效,因为系统返回的值会给出问题。
猜你喜欢
  • 2019-04-20
  • 2017-05-20
  • 1970-01-01
  • 2021-09-09
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多