根据 Windows 版本运行的批处理脚本
Posted
技术标签:
【中文标题】根据 Windows 版本运行的批处理脚本【英文标题】:A Batch Script that runs depending on the Windows edition 【发布时间】:2021-10-27 18:33:22 【问题描述】:我正在寻找允许我运行或不运行的批次,具体取决于 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
)
【问题讨论】:
如果您无法检查 wmic 命令输出中是否存在某些关键字,那么您可以运行该命令并使用“>”将其输出到文件中。然后您可以尝试检查该文件的关键字。 【参考方案1】:您可以在批处理文件的开头使用它:
@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 版本是以下任何一种,则想法是结束脚本:
Edition Identifier | SKU | Operating System Definition |
---|---|---|
CoreN | 98 | Windows 10 Home N |
CoreCountrySpecific | 99 | Windows 10 Home China |
CoreSingleLanguage | 100 | Windows 10 Home single language |
Core | 101 | Windows 10 Home |
IoTUAP | 123 | Windows 10 IoT Core |
EnterpriseS | 125 | Windows 10 Enterprise LTSB |
EnterpriseSN | 126 | Windows 10 Enterprise LTSB N |
EnterpriseSEval | 129 | Windows 10 Enterprise LTSB Evaluation |
EnterpriseSNEval | 130 | Windows 10 Enterprise LTSB N Evaluation |
IoTUAPCommercial | 131 | Windows 10 IoT Core Commercial |
您显然可以根据需要在8
行的括号内添加或删除 SKU。
【讨论】:
谢谢 ;) ,效果很好,你是个天才。您是否有一个链接可以像在您的表格中一样以十进制形式查找“SKU”,因为我发现的唯一内容是:link 但您必须转换它们,它的日期为 2018 年(有些缺失)。跨度> TBH,我不@saitama。我使用个人列表,目前有 113 个项目,这是我在多年的 PC 维修和安装过程中自己创建的。 其中 29 个可能是 Windows 10 版本。以上是关于根据 Windows 版本运行的批处理脚本的主要内容,如果未能解决你的问题,请参考以下文章
windows调度程序每x分钟运行一次批处理脚本(.bat)? [复制]
Windows 10与Windows 7中的批处理文件调用命令
如果在windows下处理 python版本冲突问题?python 2.5和2.6版本冲突