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

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

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

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

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

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

答案1

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

您可以使用wmic

以下命令将返回 Windows 版本。

wmic os get Caption | findstr /v Caption

示例输出:

F:\test>wmic os get Caption | findstr /v Caption
Microsoft Windows 7 Home Premium

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

  • 操作系统版本
  • 服务包主版本
  • 架构(64 位或 32 位)
@echo off
setlocal
setlocal enabledelayedexpansion
set _os=
set _sp=
rem use findstr to strip blank lines from wmic output
rem get OS
for /f "usebackq skip=1 tokens=3" %%i in (`wmic os get caption ^| findstr /r /v "^$"`) do (
  set "_os=%%i"
  )
rem get Service Pack
for /f "usebackq skip=1 tokens=*" %%i in (`wmic os get ServicePackMajorVersion ^| findstr /r /v "^$"`) do (
  set "_sp=%%i"
  )
rem get Architecture
for /f "usebackq skip=1 tokens=*" %%i in (`wmic OS get OSArchitecture ^| findstr /r /v "^$"`) do (
  set "_bits=%%i"
  )
echo Operating System Version: %_os%
echo Service Pack Major Version: %_sp%
echo Architecture: %_bits%
endlocal

操作系统版本存储在 中%_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>

进一步阅读

答案2

我不敢相信这么长时间没有 ver 命令

C:\>ver

Microsoft Windows [Version 10.0.10586]

C:\>

它在重定向中起作用,因此你可以这样做

ver | find "Version 10."

但是您通常应该写“针对此版本和所有未来版本”,因此最好列举之前的版本。

答案3

系统信息

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

在此处输入图片描述

答案4

我没有使用过 InstallAnywhere,但有两个选项可以使用命令行查看安装了什么操作系统。

  1. 使用 Cmd

    systeminfo.exe
    

    使用命令systeminfo.exe,您可以看到字段下的结果OS Name。这可能会给您提供比您需要的更多信息。

    有关此命令的更多信息,请参见微软技术网

  2. 电源外壳

    或者,您可以使用以下 Powershell 脚本,它将返回您想要的准确信息。

    Get-CimInstance Win32_OperatingSystem | Select-Object  Caption | ForEach{ $_.Caption }
    

相关内容