我已经看到一些批处理脚本以这种方式工作,包括围绕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%
很简单 wmic computersystem get TotalPhysicalMemory
输出三行文本:
TotalPhysicalMemory
12867309568
<blank line>
因此,您的for循环执行三个迭代。第一个MEM
设置为TotalPhysicalMemory
,第二个设置为12867309568
,最后变为。因此您的输出为空。
这很丑陋,但可以解决您的问题:
@echo OFF
setlocal enabledelayedexpansion
SET CPU="$CPU"
echo CPU: %NUMBER_OF_PROCESSORS%
FOR /F "delims= skip=1" %%i IN ('wmic computersystem get TotalPhysicalMemory') DO (
set MEM=%%i
goto STOP
)
:STOP
echo MEM: !MEM!
skip=1
将忽略TotalPhysicalMemory
并goto STOP
在第一次迭代后中断循环。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句