解析Windows中批处理脚本输出的结果

时间:2017-03-06 11:33:14

标签: windows batch-file ms-office

我正在尝试使用以下命令检索Microsoft Office版本:

reg query "HKEY_CLASSES_ROOT\Word.Application\CurVer"

返回以下输出:

HKEY_CLASSES_ROOT\Word.Application\CurVer

   (Default)    REG_SZ    Word.Application.15

我需要解析输出并使用下表匹配版本,并将最终版本粘贴到文本文件中。

  

Office 97 - 7.0
  Office 98 - 8.0
  Office 2000 - 9.0
  Office XP - 10.0
  Office 2003 - 11.0
  Office 2007 - 12.0
  Office 2010 - 14.0
  Office 2013 - 15.0
  Office 2016 - 16.0

我该怎么做?

2 个答案:

答案 0 :(得分:0)

@echo off

for /f "tokens=5* skip=1 delims=. " %%a in ('reg query "HKEY_CLASSES_ROOT\Word.Application\CurVer"') do set "wver=%%a.0"


for %%# in ("Office 97-7.0" "Office 98-8.0" "Office 2000-9.0" "Office XP-10.0" "Office 2003-11.0" "Office 2007-12.0" "Office 2010-14.0"  "Office 2013-15.0" "Office 2016-16.0") do (

    for /f "tokens=1* delims=-" %%a in ("%%~#") do (

        if %%b equ %wver%  ( 
            set ov=%%a
        )
    )
)

echo %ov%

但是你有相当旧版本的MS Office,它只能安装在{x}命令不可用的windows xp(甚至是旧版本的Windows)上。因此,您还可以检查使用reg命令的this来确定办公室版本

答案 1 :(得分:0)

我在你之前提供了一个类似的答案,虽然看似被忽略了,但在Outlook上的问题。

可能有一种方法使用注册表(尽管仅适用于Office 2007以上)

1.0000001

尚未经过测试,因为我无法证明任何Microsoft Office产品的成本。