用於確定 Windows 和 Office 版本的快速命令或批處理腳本 (quick command or batch script to determine Windows and Office version)


問題描述

用於確定 Windows 和 Office 版本的快速命令或批處理腳本 (quick command or batch script to determine Windows and Office version)

I need to do a software audit of more than 300 computers that are neither on the same network, or owned by the same company.

Is there an command or small program (that can be run without installing) that I can email to the end‑users to run that will output the MS Windows and MS Office versions?


參考解法

方法 1:

One possible way of obtaining the current Windows Version and Microsoft Office version is to query the system registry entries using command line.

To get the windows version using System registry , use the following command:

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v "ProductName"

This will give an output which can be parsed to get the current windows version/name.

To get the current office version , use:

reg query "HKEY_CLASSES_ROOT\Word.Application\CurVer"

The output of this command gives the office version in number format such as 14, 15, etc.

Parse the output to get the version number and match against the list of existing Microsoft office versions to get the name of the version installed:

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

Hope this helps!!

方法 2:

@echo off
setlocal enableDelayedExpansion
for /f "tokens=2 delims==" %%O in ('ftype ^|findstr /r /I "\\OFFICE[0‑9]*" 2^>nul') do (
    set "verp=%%~O"
    goto :end_for
)
:end_for

for %%P in (%verp%) do (
    set "off_path=%%~dpP"
    for %%V in ("!off_path:~0,‑1!") do (

     set "office_version=%%~nV"
     goto :end_for2
    )
)
:end_for2
echo %office_version%
endlocal

does NOT require administrator permissions and works on Windows XP and above

方法 3:

I use this to grab version 2003, 2007, 2010 and 2013.

@echo off
setlocal enabledelayedexpansion

for /f "tokens=3 delims=." %%a in ('reg query "HKEY_CLASSES_ROOT\Word.Application\CurVer"') do set reg=%%a

set /a i=0
for %%b in (11 12 14 15) do (
  if %%b == %reg% goto setver
  set /a i+=1
)

:setver
set /a n=0
for %%c in (2003 2007 2010 2013) do (
  if !n! == !i! set ver=%%c && goto endloop
  set /a n+=1
)

:endloop
echo Microsoft Version: %ver%
echo.
endlocal

:end
pause

方法 4:

And 1 more using npocmaka's code but adding in a map to make it more user friendly:

@echo off
setlocal

call :GetOfficeVer
endlocal
exit /b

:GetOfficeVer
::@echo off
setlocal enableDelayedExpansion
for /f "tokens=2 delims==" %%O in (
    'ftype ^|findstr /r /I "\\OFFICE[0‑9]*" 2^>nul') do (
        set "verp=%%~O"
        goto :end_for
)
:end_for

for %%P in (%verp%) do (
        set "off_path=%%~dpP"
        for %%V in ("!off_path:~‑3,2!") do (
            set "off_ver=%%~nV"
            call :Map !off_ver! && exit /b
        )
)
:Map
set "v=%1"
set "map=11‑2003;12‑2007;14‑2010;15‑2013"
call set v=%%map:*%v%‑=%%
set v=%v:;=&rem.%
echo Microsoft Office Version: %v%
endlocal
exit /b

方法 5:

To get the office version under Windows 10, this is quite elegant:

for /F "tokens=3 delims=." %%O in ('reg query HKEY_CLASSES_ROOT\Word.Application\CurVer') do set _officeVer=%%O

Does not require admin rights and works also on xp and above

(by Reecer3ap3rnpocmakaHelperMatt WilliamsonAlex Metcalfe)

參考文件

  1. quick command or batch script to determine Windows and Office version (CC BY‑SA 3.0/4.0)

#ms-office #batch-file #Windows






相關問題

什麼是 MS Office 對比算法? (What is the MS Office contrast algorithm?)

在 Office 2007 應用程序中使用 VBA? (Use VBA in Office 2007 Applications?)

複製 Word 腳註 (Copy Word Footnotes)

使用 WebApi 打開辦公文檔並使用 MS Office 保存回站點 (Open office documents with WebApi and save back to the site using MS Office)

用於確定 Windows 和 Office 版本的快速命令或批處理腳本 (quick command or batch script to determine Windows and Office version)

通過 Office 加載項將內容添加到 Outlook 電子郵件正文 (Adding content to an Outlook email body via an Office Add-In)

Word 2016 自動化生成“錯誤:80080005 服務器執行失敗” (Word 2016 automation generates "error: 80080005 Server execution failed")

Office 2016 查找激活日期 (Office 2016 find activation date)

Word 2007 文件啟動新窗口而不是顯示內聯 (Word 2007 files launching new window instead of displaying inline)

將 A1 公式和數組轉換為 L1C1 公式,反之亦然 (convert A1 formula and Array into L1C1 formula and vice-versa)

.NET C# Office Shared Add In WCF Service 引用異常 (.NET C# Office Shared Add In WCF Service reference exception)

從顯示“錯誤!超鏈接引用無效”的 MS Word 字段中恢復 URL (Recover URL from MS Word fields showing "Error! Hyperlink reference not valid")







留言討論