我有一组用于执行脚本安装的脚本。您可以在任何 server 2008 机器上使用这些脚本。但是,我需要使用 dos 批处理文件检查是否已安装 .NET 3.5(在脚本运行之前)。那可能吗?
我知道我可以检查 C:\WINDOWS\Microsoft.NET\Framework\v3.5
中的文件是否存在,但如果有一些更可靠的东西会更好。
我想检查它是否真的安装了,而不仅仅是目录/文件是否存在。
谢谢
最佳答案
既然你说你想知道它是否真的安装了,我认为最好的方法(除了运行特定版本的代码),就是检查名为“Install”的注册表项。 0x1 表示是:
C:\>reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5"| findstr Install
Install REG_DWORD 0x1
InstallPath REG_SZ c:\WINNT\Microsoft.NET\Framework\v3.5\
这也正好是“微软推荐”official method .
WMI 是另一种可能性,但似乎不切实际(慢?在我的 C2D、SSD 上需要 2 分钟)。也许它在您的服务器上运行得更好:
C:\>wmic product where "Name like 'Microsoft .Net%'" get Name, Version
Name Version
Microsoft .NET Compact Framework 1.0 SP3 Developer 1.0.4292
Microsoft .NET Framework 3.0 Service Pack 2 3.2.30729
Microsoft .NET Framework 3.5 SP1 3.5.30729
Microsoft .NET Compact Framework 2.0 2.0.5238
Microsoft .NET Framework 4 Client Profile 4.0.30319
Microsoft .NET Framework 4 Multi-Targeting Pack 4.0.30319
Microsoft .NET Framework 2.0 Service Pack 2 2.2.30729
Microsoft .NET Framework 1.1 1.1.4322
Microsoft .NET Framework 4 Extended 4.0.30319
C:\>wmic product where "name like 'Microsoft .N%' and version='3.5.30729'" get name
Name
Microsoft .NET Framework 3.5 SP1
除此之外,我认为唯一可以 100% 确定的方法是实际运行一个针对您的框架版本编译的简单控制台应用程序。就个人而言,我认为这是不必要的,并且相信注册表方法很好。
最后,您可以设置一个可从您的服务器访问的 Intranet 测试站点,并嗅探用户代理以确定 .NET 版本。但这当然不是批处理文件解决方案。另见 doc here .
关于.net - 是否有用于验证安装了哪个版本的 .NET 的命令行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/492967/