首页 > 解决方案 > 根据 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
) 

标签: windowsbatch-filewindows-10

解决方案


您可以在批处理文件的开头使用它:

@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。


推荐阅读