我在问什么是知道办公室是否批量安装在 Windows 上的最佳方法?
所以,我创建了这个批处理文件来知道安装了哪个单词版本!
我的问题: 您知道是否有任何其他方法可以批量确定 Office 是否安装在 Windows 上以及哪个版本?
@echo off
Title Check if Word Office is installed or Not ? And Which Version Number ?
@for /f "skip=2 tokens=3 delims=." %%a in (
'reg query "HKEY_CLASSES_ROOT\Word.Application\CurVer" /f App*'
) do (
Set "VerNumber=%%a.0"
)
SetLocal EnableDelayedExpansion
If defined VerNumber (
If [!VerNumber!] EQU [11.0] (Set "MSOffice=Office 2003")
If [!VerNumber!] EQU [12.0] (Set "MSOffice=Office 2007")
If [!VerNumber!] EQU [14.0] (Set "MSOffice=Office 2010")
If [!VerNumber!] EQU [15.0] (Set "MSOffice=Office 2013")
If [!VerNumber!] EQU [16.0] (Set "MSOffice=Office 2016+")
Color 0B & echo Word Application is installed ("!MSOffice!"^) (VerNumber="!VerNumber!"^)
) else (
Color 0C & echo Word Application is not installed ! & Timeout /T 3 /Nobreak>nul & Exit /B
)
EndLocal
Pause & Exit /B
评论中链接的问题仅在安装时回答 Office 版本,但在未安装版本时不会真正尝试回答
在我的测试中,即使您没有安装 Office,也始终会设置您的变量....
在您的
For /f
循环中添加2>nul
重定向器,您的循环将不会返回任何定义您的变量的字符串...你
if defined
的不工作....