一行即可实现值

一行即可实现值

可以将这两行脚本合并为一行吗?

For /f  "tokens=2 delims==" %%A in ('WMIC computersystem get manufacturer /Value^|Find /i "Manufacturer="') Do Set Maker=%%A
For /f  "tokens=2 delims==" %%A in ('WMIC computersystem get model /Value^|Find /i "Model="') Do Set name=%%A

如有任何建议我将非常感激。

修改 在此处输入图片描述

答案1

它声明两个名为“制造商”和“型号”的变量并赋予适当的值:

for /F "tokens=1,2 delims==" %%e in ('wmic computersystem get manufacturer^, model /Value ^| find "=" ') do set %%e=%%f

答案2

要使用为变量选择的名称,可以选择添加if defined并将输出格式更改为format:xlm,从而过滤字符串中的值。

for /f useback^tokens^=4delims^=^<^> %%i in (`wmic computersystem get manufacturer^,model /format:xml ^|find "VALUE"`)do if defined _Maker (set "_name=%%~i")else set "_Maker=%%~i"

谢谢,但我想提取等号后面的值!见截图。– VB88
/format:tablewmic命令中 使用:

for /f tokens^=1* %%i in ('wmic computersystem get manufacturer^,model /format:table^|findstr .')do set "Maker=%%~i" & set "name=%%~j"

相关内容