首页 > 解决方案 > 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 这是产品密钥,它显示我只是回显已关闭。

标签: batch-filecmd

解决方案


我建议你添加一行

echo "%WINVER%"

在“如果”测试之前。

对于 Windows 10 家庭版,这将显示“Microsoft Windows 10 家庭版”。我无法使用 Windows 10 Pro 进行测试,但我的直觉告诉我 Pro 也会显示那些尾随空格。

也许

if "%WINVER: =%" == "MicrosoftWindows10Pro" ...

将解决您的问题。


推荐阅读