for /f "delims=.+-" %A in ('wmic cpu get loadpercentage') do Set dt=%A
但输出是
:\Users\diablo>Set dt=LoadPercentage
:\Users\diablo>Set dt=1
:\Users\diablo>Set dt=
虽然我希望它只保留cpu loadpercentage(数字)
答案 0 :(得分:0)
不要让它有多条线......
for /f %a in ('wmic cpu get LoadPercentage /value^|find "="') do @set /a %a
echo %LoadPercentage%
答案 1 :(得分:0)
跳过标题行并环绕另一个for /F
循环以避免显示为空的尾随行(实际上它们包含由for /F
的Unicode到ANSI转换不良导致的孤立回车字符; a第二个for /F
循环是摆脱它们的最可靠方式):
for /F "skip=1 delims=" %A in ('wmic CPU get LoadPercentage') do @for /F "delims=" %B in ("%A") do set "dt=%B"
或者,使用wmic
的其他输出格式不必跳过任何内容(仍然是for /F
两次):
for /F "delims=" %A in ('wmic CPU get LoadPercentage /VALUE') do @for /F "tokens=2 delims==" %B in ("%A") do set "dt=%B"
由于LoadPercentage
仅包含纯数字值,因此我删除了分隔符.+-
。