如何在双插槽机器上的批处理文件中获取物理和逻辑内核的数量?
How to get the number of physical and logical cores in a batch file on a dual socket machine?
WMIC CPU Get NumberOfCores,NumberOfLogicalProcessors
得到了我想要的大部分内容,但如何将组合输出存储到变量中?
for /f "delims=" %%a in ('"WMIC CPU Get NumberOfCores,NumberOfLogicalProcessors /value"') do set /a "_%%a"
set _
仅适用于单路机器。 WMIC
命令 returns cpu 信息在单独的行上,即
>WMIC CPU Get NumberOfCores,NumberOfLogicalProcessors /value
NumberOfCores=24
NumberOfLogicalProcessors=48
NumberOfCores=24
NumberOfLogicalProcessors=48
这样做就可以了:
for /f "tokens=2,3 delims=," %%a in ('WMIC CPU Get NumberOfCores^,NumberOfLogicalProcessors /value /format:csv') do set "both=Cores=%%a Processors=%%b"
/format:csv
改变了一些格式,使我们更容易操作,我在上面的命令中就是这样做的。
@echo off
setlocal
set /A "_NumberOfCores=_NumberOfLogicalProcessors=0"
for /F "tokens=1,2 delims==" %%a in ('WMIC CPU Get NumberOfCores^,NumberOfLogicalProcessors /value') do if "%%b" neq "" set /A "_%%a+=%%b"
set _
注意wmic
命令输出行以CR+CR+LF ASCII字符结尾,即使是空行,所以需要检查%%b
部分是否存在,避免处理空行行。
WMIC CPU Get NumberOfCores,NumberOfLogicalProcessors
得到了我想要的大部分内容,但如何将组合输出存储到变量中?
for /f "delims=" %%a in ('"WMIC CPU Get NumberOfCores,NumberOfLogicalProcessors /value"') do set /a "_%%a"
set _
仅适用于单路机器。 WMIC
命令 returns cpu 信息在单独的行上,即
>WMIC CPU Get NumberOfCores,NumberOfLogicalProcessors /value
NumberOfCores=24
NumberOfLogicalProcessors=48
NumberOfCores=24
NumberOfLogicalProcessors=48
这样做就可以了:
for /f "tokens=2,3 delims=," %%a in ('WMIC CPU Get NumberOfCores^,NumberOfLogicalProcessors /value /format:csv') do set "both=Cores=%%a Processors=%%b"
/format:csv
改变了一些格式,使我们更容易操作,我在上面的命令中就是这样做的。
@echo off
setlocal
set /A "_NumberOfCores=_NumberOfLogicalProcessors=0"
for /F "tokens=1,2 delims==" %%a in ('WMIC CPU Get NumberOfCores^,NumberOfLogicalProcessors /value') do if "%%b" neq "" set /A "_%%a+=%%b"
set _
注意wmic
命令输出行以CR+CR+LF ASCII字符结尾,即使是空行,所以需要检查%%b
部分是否存在,避免处理空行行。