获取WMIC命令的结果并将其存储在变量中

Dav*_*ago 1 scripting batch-file wmic

我看到一些批处理脚本以这种方式工作,包括所有的stackoverflow.

我的问题很简单:为什么MEM部分不起作用?

@echo OFF

SET CPU="$CPU"

echo CPU: %NUMBER_OF_PROCESSORS%

FOR /F "delims=" %%i IN ('wmic computersystem get TotalPhysicalMemory') DO set MEM=%%i

echo MEM: %MEM%
Run Code Online (Sandbox Code Playgroud)

Hac*_*koo 5

您可以通过格式化WMICwith For / Do循环的输出来执行类似的操作:

@echo off
Call :GetTotalPhysicalMemory
echo TotalPhysicalMemory = %MEM% & pause
exit
::***********************************************
:GetTotalPhysicalMemory
for /f "tokens=2 delims==" %%a in ('
    wmic computersystem get TotalPhysicalMemory /value
') do for /f "delims=" %%b in ("%%a") do (
    Set "MEM=%%b" 
)
exit /b
::***********************************************
Run Code Online (Sandbox Code Playgroud)