微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

快速命令或批处理脚本来确定Windows和Office版本

我需要对300多台既不在同一个networking,也不属于同一个公司的计算机进行软件审计。

有没有一个命令或小程序(可以运行没有安装),我可以通过电子邮件发送给最终用户运行,将输出MS Windows和MS Office版本?

文件夹中的所有文件执行命令

寻找一个简单的修改文件名的批处理脚本

VBScript自定义button?

脚本.bat可以更改Windows PATH环境variables

与Jenkins远程PowerShell命令

获取当前Windows版本和Microsoft Office版本的一种可能方法是使用命令行查询系统注册表项。

要使用系统注册获取Windows版本,请使用以下命令:

reg query "HKLMSoftwareMicrosoftwindows NTCurrentVersion" /v "ProductName"

这将给出一个输出,可以解析获取当前的Windows版本/名称

要获得当前的办公版本,请使用:

reg query "HKEY_CLASSES_ROOTWord.ApplicationCurVer"

这个命令的输出给出了数字格式的办公室版本,例如14,15等。

解析输出获取版本号,并现有Microsoft Office版本列表进行匹配获取所安装版本的名称

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

希望这可以帮助!!

@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

不需要管理员权限,可以在Windows XP及更高版本上运行

我用它来抓取版本2003,2007,2010和2013。

@echo off setlocal enabledelayedexpansion for /f "tokens=3 delims=." %%a in ('reg query "HKEY_CLASSES_ROOTWord.ApplicationCurVer"') do set reg=%%a set /ai=0 for %%b in (11 12 14 15) do ( if %%b == %reg% goto setver set /a i+=1 ) :setver set /an=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

还有一个使用npocmaka的代码,但在地图中添加更多的用户友好:

@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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐