batch-file - Windows 命令提示符中的 if command -> set -> echo 出现问题
问题描述
我将创建一个带有名为 %ProductKey% 的变量的 Windows 批处理文件。我有确定 Windows 版本的代码(即变量 %WINVER%)。它应该使用 if 命令设置 ProductKey 变量并回显 %ProductKey%,它应该是 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX。
for /f "usebackq skip=1 tokens=*" %%i in (`WMIC OS Get Caption ^| findstr /r /v "^$"`) do set WINVER=%%i
if "%WINVER%" == "Microsoft Windows 10 Pro" ( set ProductKey=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX )
echo %ProductKey%
pause
%WINVER% 是适用于我的 PC 的 Microsoft Windows 10 Pro。
它应该显示我 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX 这是产品密钥,它显示我只是回显已关闭。
解决方案
我建议你添加一行
echo "%WINVER%"
在“如果”测试之前。
对于 Windows 10 家庭版,这将显示“Microsoft Windows 10 家庭版”。我无法使用 Windows 10 Pro 进行测试,但我的直觉告诉我 Pro 也会显示那些尾随空格。
也许
if "%WINVER: =%" == "MicrosoftWindows10Pro" ...
将解决您的问题。
推荐阅读
- java - 在用户名或用户电子邮件等属性下使用@Id 注释是否是一种好习惯
- java - Spring:调用 new ClassPathXmlApplicationContext() 时出现 FileNotFoundException
- c - 凯撒密码负数问题
- php - 如何将贝宝集成到我的 php 项目中?
- spagobi - 在 Spago BI 报告中的文档选项卡之间切换时出现错误
- gradle - 如何在库 jar 中打包扩展功能?
- kubernetes - MacO 上的 gRPC 网络连接到运行 Istio 的 Kubernetes
- node.js - 使用 NodeJs 将文件上传到 Google Drive 时如何获取进度状态?
- javascript - 在 Jest 中模拟 TimelineMax 和 TweenMax 模块
- kotlin - Kotlin 中的方法应该返回一个布尔值