windows - 根据 Windows 版本运行的批处理脚本
问题描述
我正在寻找允许我运行或不运行的批次,具体取决于 Windows 的版本。它将在除 Home(或 Core)和 S 之外的所有 Windows 10 版本上运行。目前我已经根据构建成功过滤,但这还不够。
我还在 : 中查看了注册表项 EditionID,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
但是wmic os get caption
作为批处理的初学者,我无法将其集成到我的 .bat 中
FOR /f "tokens=6 delims=[]. " %%i in ('ver') do SET build=%%i
IF %build% LSS 17763 (
COLOR E
ECHO.===============================================================================
ECHO. ALERT - Not compatible with previous versions ... the RS5
ECHO.===============================================================================
ECHO.
PAUSE
GOTO :EOF
)
解决方案
您可以在批处理文件的开头使用它:
@Echo Off
SetLocal EnableExtensions
Set /A "SKU=OSV=0"
For /F "EOL=O Tokens=1,2 Delims=. " %%G In ('%SystemRoot%\System32\wbem\WMIC.exe
OS Where "Version>10" Get OperatingSystemSKU^, Version 2^>NUL'
) Do Set /A "SKU=%%G, OSV=%%H" 2>NUL
If Not %OSV% Equ 10 GoTo :EOF
For %%G In (98 99 100 101 123 125 126 129 130 131) Do If %%G Equ %SKU% GoTo :EOF
Rem Your code goes here
如果检测到的操作系统不是 Windows 10,并且 Windows 10 版本是以下任何一种,则想法是结束脚本:
版本标识符 | 库存单位 | 操作系统定义 |
---|---|---|
核心N | 98 | Windows 10 家庭版 N |
核心国家特定 | 99 | Windows 10 家庭中国版 |
核心单语 | 100 | Windows 10 家庭单一语言 |
核 | 101 | Windows 10 家庭版 |
物联网UAP | 123 | Windows 10 物联网核心版 |
企业S | 125 | Windows 10 企业版 LTSB |
企业SN | 126 | Windows 10 企业版 LTSB N |
企业评估 | 129 | Windows 10 企业版 LTSB 评估 |
企业SNEval | 130 | Windows 10 企业版 LTSB N 评估 |
IoTUAP商用 | 131 | Windows 10 物联网核心商业版 |
您显然可以8
根据需要在线添加或删除括号内的 SKU。
推荐阅读
- java - Java Spring:OAuth 身份验证失败:未知错误
- python - 执行列表项字典的连接
- java - 多线程时如何避免访问相同的静态计数器
- html - 是否允许用户即使打开新标签也可以返回历史记录?
- ruby-on-rails - 如何在 Jbuilder 中使用带有 Gon gem 的 Rails 助手?
- python - 将稀疏矩阵列表转换为单个稀疏矩阵
- python - 如何通过 API Gateway AWS 在 POST 请求中发送纯文本
- c# - 更新没有空白字段的sql数据库
- c - 使用指针算法将数组元素更改为用户输入
- swift - 使用 SDWebImage 下载并呈现为 .AlwaysTemplate