BATCH:for循环设置的变量最终为空

BATCH: Variable set by for loop ends up being blank

我正在尝试运行以下脚本

@ECHO OFF
FOR /F "Skip=1 Tokens=*" %%G IN ('WMIC COMPUTERSYSTEM GET Manufacturer') DO (SET "DeviceOEM=%%G")
ECHO OEM: %DeviceOEM%
PAUSE

然而我得到的只是“ECHO OEM:”,这表明 %DeviceOEM% 是空白的。

现在如果我运行

FOR /F "Skip=1 Tokens=*" %%G IN ('WMIC COMPUTERSYSTEM GET Manufacturer') DO (ECHO %%G)
PAUSE

然后我得到了我的 OEM 的真实答案。

我不明白这个 SET 命令哪里出错了。

delim= 上发出时,它只会将 = 之后的值赋给该值。因此,我们更改 wmic 命令以使用 /value 发出结果,这将 return Manufacturer=<name of OEM> 我们只使用所有内容 post =

@echo off
For /F "tokens=2*delims==" %%G in ('WMIC COMPUTERSYSTEM GET Manufacturer /value') do SET "DeviceOEM=%%G"
echo OEM: %DeviceOEM%