如何找到安装了哪个 windows 10 版本?

How to find which windows 10 build is installed?

我需要通过批处理文件找到安装了哪个windows 10

如果它在1607RS4 build之间我会安装x.exe如果它是rs4或更高我不会安装x.exe.

所以我需要一个 if/else 语句来让它工作?

threshold 1 1507 10240
threshold 2 1511 10586
redstone 1 1607 14393
redstone 2 1703 15063
redstone 3 1709 16299
redstone 4 1803 17134
redstone 5 1809 17650

也许可以检查它是否在 1439316299 之间,或者我可以检查它是否在 1607 或其他任何东西等

这是一种可能的方法,使用 WMIC:

@Echo Off
Set "VN="
For /F "EOL=V Tokens=*" %%A In (
    'WMIC OS Where "Version<'4'" Get Version 2^>Nul'
) Do For /F "Tokens=3 Delims=." %%B In ("%%A") Do Set "VN=%%B"
If Not Defined VN Exit /B
If %VN% GEq 11082 If %VN% LEq 16299 Set "VN="
If Defined VN Exit /B
Rem your install code goes here.

备注:

我的 WMIC 代码未涵盖 Threshold 1 的三个预览版:6.4.98416.4.98606.4.9879

我的前 6 行涵盖的第一个版本是 2015 年 1 月 23 日 10.0.9926 发布的 Threshold 1 的预览版;此后的所有其他版本都应该可以达到这一点!

我的回答涵盖了以下版本:

  • Redstone 1 预览版:10.0.110822015 年 12 月 16 日10.0.143902016 年 7 月 15 日
  • 红石 1 Public 发布:10.0.14393 2016 年 7 月 18 日起
  • Redstone 2 预览版:10.0.149012016 年 8 月 11 日10.0.150612017 年 3 月 17 日
  • Redstone 2 Public 发布:10.0.15063 2017 年 3 月 20 日起
  • Redstone 3 预览版:10.0.161702017 年 4 月 7 日10.0.162962017 年 9 月 22 日
  • Redstone 3 Public 发布:10.0.16299 自 2017 年 9 月 26 日起

编辑

添加此代码是为了在评论部分提供额外的 OP 要求。

@Echo Off
Set "VN="
For /F "EOL=V Tokens=*" %%A In (
    'WMIC OS Where "Version<'4'" Get Version 2^>Nul'
) Do For /F "Tokens=3 Delims=." %%B In ("%%A") Do Set "VN=%%B"
If Not Defined VN Exit /B
If %VN% GEq 11082 If %VN% LEq 16299 Set "VN="
If Defined VN GoTo SkipInstall
Rem your install code goes here.

Exit /B

:SkipInstall
Rem your code for Threshold or Redstone 4 goes here.