无法在批处理文件中设置变量

时间:2013-09-03 17:17:21

标签: variables batch-file

我有以下......

@ECHO OFF
setlocal EnableDelayedExpansion

for /f "skip=1" %%p in ('wmic cpu get loadpercentage') do @echo %%p
ECHO ...this worked
ECHO. 
PAUSE

for /f "skip=1" %%p in ('wmic cpu get loadpercentage') do set cpu=%%p
ECHO cpu is %cpu%
ECHO ...this did not work
ECHO. 
PAUSE

为什么我不能在变量%cpu%中设置数字,它总是空白的!

2 个答案:

答案 0 :(得分:3)

for /f "skip=1" %%p in ('wmic cpu get loadpercentage') do set cpu=%%p & goto :end_for
:end_for

WMIC在结尾处产生一个空行。您可以在wmic调用结束时尝试使用/format:csv,这将阻止它。

另请检查:http://www.dostips.com/forum/viewtopic.php?f=3&t=4266

答案 1 :(得分:0)

还没有找到解决方案,但问题似乎是那个

wmic cpu get loadpercentage

输出中有两行以上,for循环遍历所有行

如果我实际上回显了for循环中的所有集合,它看起来像这样

set cpu=1
set cpu=
cpu is 
相关问题