如何找到安装了哪个 windows 10 版本?
How to find which windows 10 build is installed?
我需要通过批处理文件找到安装了哪个windows 10
。
如果它在1607
和RS4 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
也许可以检查它是否在 14393
到 16299
之间,或者我可以检查它是否在 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.9841
、6.4.9860
和 6.4.9879
我的前 6
行涵盖的第一个版本是 2015 年 1 月 23 日 10.0.9926
发布的 Threshold 1
的预览版;此后的所有其他版本都应该可以达到这一点!
我的回答涵盖了以下版本:
- Redstone 1 预览版:
10.0.11082
2015 年 12 月 16 日至 10.0.14390
2016 年 7 月 15 日
- 红石 1 Public 发布:
10.0.14393
2016 年 7 月 18 日起
- Redstone 2 预览版:
10.0.14901
2016 年 8 月 11 日至 10.0.15061
2017 年 3 月 17 日
- Redstone 2 Public 发布:
10.0.15063
2017 年 3 月 20 日起
- Redstone 3 预览版:
10.0.16170
2017 年 4 月 7 日至 10.0.16296
2017 年 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.
我需要通过批处理文件找到安装了哪个windows 10
。
如果它在1607
和RS4 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
也许可以检查它是否在 14393
到 16299
之间,或者我可以检查它是否在 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.9841
、6.4.9860
和 6.4.9879
我的前 6
行涵盖的第一个版本是 2015 年 1 月 23 日 10.0.9926
发布的 Threshold 1
的预览版;此后的所有其他版本都应该可以达到这一点!
我的回答涵盖了以下版本:
- Redstone 1 预览版:
10.0.11082
2015 年 12 月 16 日至10.0.14390
2016 年 7 月 15 日 - 红石 1 Public 发布:
10.0.14393
2016 年 7 月 18 日起 - Redstone 2 预览版:
10.0.14901
2016 年 8 月 11 日至10.0.15061
2017 年 3 月 17 日 - Redstone 2 Public 发布:
10.0.15063
2017 年 3 月 20 日起 - Redstone 3 预览版:
10.0.16170
2017 年 4 月 7 日至10.0.16296
2017 年 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.