如何使用命令行确定我的系统是否为 Windows 10?

Dom*_*que 32 command-line windows-10

我正在使用 InstallAnywhere,这是一个用于创建安装程序的旧程序。我想安装一个特定的文件,只有在 Windows XP 和 Windows Vista 的情况下。

由于 InstallAnywhere 的限制,这是不可能的。我只能根据规则决定在文件安装后删除它。

在该规则内,我可以检查我正在运行的平台,这使我可以检查 Windows XP、Windows Vista、Windows 7 等,但不能检查 Windows 10。我不能说“执行此系统不是 XP 或 Vista 时的操作”,所以我需要说“在所有那些不是 XP 或 Vista 的平台上执行此操作”。

但是,我可以启动命令行命令并捕获结果,所以这是我的问题:是否有一个命令可用于确定我是否在 Windows 10 系统上工作?

Dav*_*ill 54

是否有命令可以确定我是否在 Windows 10 系统上工作?

您可以使用wmic.

以下命令将返回 Windows 版本。

wmic os get Caption | findstr /v Caption
Run Code Online (Sandbox Code Playgroud)

示例输出:

F:\test>wmic os get Caption | findstr /v Caption
Microsoft Windows 7 Home Premium
Run Code Online (Sandbox Code Playgroud)

如果您想了解更多信息,可以使用以下批处理文件 (GetOS.cmd),它将检索并显示:

  • 操作系统版本
  • 服务包主要版本
  • 架构(64 或 32 位)
wmic os get Caption | findstr /v Caption
Run Code Online (Sandbox Code Playgroud)

操作系统版本存储在 中%_os,服务包主要版本存储在 中%_sp%,架构存储在%_bits%.

笔记:

  • 没有完全测试,因为我没有所有的操作系​​统和服务包组合来测试它。

  • for命令仅检索操作系统的第三部分(令牌)。这将适用于桌面版本(如果您想将 Server 2008 与其他版本区分开来,您需要找到另一个解决方案)。

  • %_os将被设置为以下值中的一个:ServerVista788.110

示例输出:

F:\test>GetOS
Operating System Version: 7
Service Pack Major Version: 1
Architecture: 64-bit

F:\test>
Run Code Online (Sandbox Code Playgroud)

进一步阅读

  • 经过一些测试,我决定使用以下命令:`wmic os get Caption | findstr /V 标题` (2认同)

Jos*_*hua 35

我无法相信这么长而且没有任何命令

C:\>ver

Microsoft Windows [Version 10.0.10586]

C:\>
Run Code Online (Sandbox Code Playgroud)

它适用于重定向,因此您可以执行

ver | find "Version 10."
Run Code Online (Sandbox Code Playgroud)

但是你通常应该写“为这个版本和所有未来版本”,所以你最好枚举以前的版本。

  • @Keltari 但是`iex "ver"` 确实如此! (3认同)

Leo*_*iro 18

系统信息

获取许多有用的信息,如操作系统、系统类型(32/64 位)等等:

在此处输入图片说明

  • 感谢您的快速回复。`systeminfo` 确实提供了我正在寻找的信息(因此是赞成票),但这需要相当长的时间(在我的 PC 上需要超过 15 秒)。因此,我选择了在下一个答案中找到的 `wmic` 解决方案。 (3认同)